我已經採取了冒險和使用Guice爲我的最新項目。總的印象是好的,但我遇到了一個我無法理解的問題。獲取Guice從愚蠢的數據對象創建對象
背景:這是一個Java6應用程序,通過網絡接受命令,解析這些命令,然後使用它們修改一些內部數據結構。它是我們公司生產的一些硬件的模擬器。我對內部數據結構所做的更改與命令對真實硬件的影響相匹配,因此後續對數據結構的查詢應該基於先前運行的命令反映硬件狀態。
我遇到的問題是命令對象需要訪問這些內部數據結構。這些結構由Guice創建,因爲它們根據所模擬硬件的實際情況而有所不同。命令對象不是由Guice創建的,因爲它們本質上是愚蠢的對象:它們接受一個文本字符串,解析它並在數據結構上調用一個方法。
我唯一能做的就是讓這些命令對象由Guice創建並通過注入傳入數據結構。它感覺真的很笨重,並且完全膨脹了數據對象的構造函數。
我在這裏錯過了什麼?
如果您的值對象根據所模擬的硬件而不同,您可以編寫一個工廠來創建它們並讓Guice將工廠注入需要它的代碼。換句話說,避免注入值對象的一種方法是創建一個生成值對象的服務。 – NamshubWriter 2009-07-22 14:36:09