2012-02-03 83 views
0

我遇到了一種情況,即我有一個公共參考對象正在作爲參數傳遞給不同的操作對象。它使代碼非常混亂,無法傳遞。 是否有任何使它像每個操作(如會話)的引用?但是,它只是一個核心代碼庫。使用靜態類不是解決方案。在不同對象之間共享對象

謝謝

+2

爲什麼不是靜態類的解決方案它只是一個核心代碼庫? – tster 2012-02-03 17:37:20

+0

您應該提供有關您的用例的詳細信息(示例)。 – ken2k 2012-02-03 17:37:54

+0

您可以將它作爲所有函數都可以訪問的全局屬性,也可以使代碼更簡潔。如果你想要更好的東西,你應該發佈一些你確切需要的示例代碼 – musefan 2012-02-03 17:38:57

回答

1

解決方案1 ​​ - 您可以使用單身。它們保證在運行代碼中只有一個類的實例。

解決方案2 - 爲什麼不將共享引用對象作爲對象的屬性進行操作?這樣,每個操作都可以訪問它。你可以做一些奇特的事情,如引用屬性爲空,拋出異常等。

+0

我明白。 IoC和amibent都是單身。我的問題將變成它是一個多用戶正在使用的應用程序,我存儲的對象是基於用戶的信息。單身人士會給我多個用戶中的同一個對象。 – 2012-02-17 18:04:21

1

對於這個,我知道的兩種常用的方法:

一)使用國際奧委會和構造函數依賴於你的共享對象傳遞。正如你所提到的,如果這個對象被用在許多地方,這會污染界面,並且在很多情況下會增加很多混亂。

b)使用ambient context:創建一個基於接口的單例,可以由需要該對象實例的類訪問。在單例中有一個允許你覆蓋實例的setter(例如,用於單元測試),所以測試代碼仍然是可能的。

+0

我明白。 IoC和amibent都是單身。我的問題將變成它是一個多用戶正在使用的應用程序,我存儲的對象是基於用戶的信息。單身人士會給我多個用戶中的同一個對象。 – 2012-02-17 18:04:16