2009-08-29 61 views
0

這是關於this question。建議的答案涉及將屬性添加到類型爲「Form2」的「Form1」,該類型回答所問的問題。但是如果我們想要一個不太耦合的解決方案呢。你有什麼建議?尋找更好的winforms設計

回答

1

你得到的awnser是如此耦合,因爲你沒有提供關於你當前的設計是什麼的信息,並命名的東西form1和form2。

要獲得更少的耦合設計,你可以做下列操作之一:

最簡單的辦法 一個事件添加到火災時,X時(X是什麼決定的通知圖標需要窗口2更改)。然後,您可以在通知圖標和form2引用的地方掛接事件處理程序。這種方式form2不必瞭解form1。這種方式的耦合來自form1 - > form2(它反正是因爲form1實例化form2)而不是form1 < ---> form2

這個先進的解決方案涵蓋了遠遠超過這個通知問題,但體系結構整個應用程序 另一種解決方案是使用乾淨的UI設計模式,如模型視圖控制器,模型視圖呈現或模型視圖視圖模型。通知有問題不是形式本身,而是某個商業實體的關注。所以這應該是probally揭露它,而不是形式themselve(這只是負責實際呈現的東西)。如果從表單中抽象出通知的概念並將其引入某種模型,則甚至可以使用IoC容器(例如structuremapninject)和INotificationManager接口(其中包含具體類型的IoC容器)來添加更多解耦可以在運行時構建模型類時注入。

+0

感謝您的回覆。原來的問題不是我的,但它確實讓我思考。 – Rob 2009-08-29 22:12:40