2011-07-08 301 views
1

我有許多GUI類正在訪問從其構造函數中設置的相同信息對象。每個GUI類以不同的方式顯示gui信息對象。在對象之間傳遞對象

每次在構造函數中初始化對象還是僅將對象添加到內存並在每次GUI類需要時使用它都更好?兩種方法都屬於設計模式嗎?

+1

第二種方式可能是singleton模式。你應該儘量避免單身人士。 –

+0

那麼現在每個GUI類都在其構造函數中創建該對象的一個​​新實例?但是對象中的信息總是一樣的? –

+0

@Damokles對象始終是相同的類型,但其某些成員變量對於每個GUI類將具有不同的值。 –

回答

2

即使在特定對象的設計模式閱讀本文之前,一個很好的起點是對MVC(模型 - 視圖 - 控制器)模式閱讀起來。它可能是那裏最常用的架構模式,谷歌搜索將帶來大量的好材料(在這種情況下,Wikipedia甚至會是一個好的開始)

它用於解決您已經暗示的問題在,你的各種顯示邏輯必須經常訪問相同的信息保存邏輯。在使用MVC架構的應用程序中,您的代碼(或多或少)分爲三類,在UI中顯示信息的代碼,保存(或模型化)信息的代碼以及控制應用程序和應用程序流的代碼事件。 MVC應用程序通常使用監聽器和其他事件設計模式,就像上面提到的一樣。

1

我會建議依賴注入,那裏有很多框架。我最喜歡的是guice,但是YMMV。

1

如何使用策略模式?基本上只是限定了一組類,從相同的接口繼承如

public interface GUIBehavior { 

} 

//組類

public behavior1 implementse GUIBehavior... 

//在該顯示信息簡單地設置一個屬性的行爲clases

private GUIBehavior myCurrentBehavior; 
+0

感謝您的回答,但我不明白這是如何回答原來的問題?你能詳細說明嗎? –

+0

@ user470184由於每個GUI都在執行自己的行爲,因此可以將這些行爲分爲一組類。如果您希望在運行時改變這種行爲,您可以簡單地將該屬性指向新的行爲。 –