給定一個類層次結構像這樣的: a package tree 這將是一個不錯的主意,有一類是幫助創建的對象? E.I.一個類與方法相對應的每個可以創建的類(方法equals()返回一個CompareCriteria例如)。 我看到的好處是它會隱藏複雜的繼承結構,並且依賴關係會減少。這是一種模式,一個壞主意或你知道如何改進?
0
A
回答
1
對象創建有兩種或三種模式。最常見的是工廠,這似乎適用於這個層次結構。我不記得其他的(也不知道有多少),但我認爲另一個被稱爲原型。
如果你關心這樣的事情,拿書的設計模式。
4
2
它們實際上是一種設計模式 - 創作模式。維基百科有這些圖案類型的合理說明 - 從GoF的書起源:
http://en.wikipedia.org/wiki/Creational_pattern
- 抽象工廠模式
- 工廠方法模式
- Builder模式
- 延遲初始化模式
- 對象池
- 原型模式
- Singleton模式
1
的類層次隻字未提需要一個工廠方法或創建對象的任何其他專門的辦法。你想用這些課程做什麼?難以使用嗎?難以延續嗎?
是否創建工廠或類似的改善情況?
如果你不能讓你的心靈,創建一個使用類(現實的例子請)的一些實例,然後重構那些用你們廠。
,運動後,你應該能夠自己決定。或者回來一些更具體的問題。
0
似乎並不複雜。在選擇之前,您可能需要考慮如何進行單元測試 - 工廠可以很難正確注入模擬。
此外,我還沒有看到任何人名單依賴注入 - 我倒是尋找到一個DI工具包,以及因爲它會解決的單元測試問題和共同建設的模式相關的幾個人。它看起來像你的一些類建立在其他人(如你可能結合他們來解決問題),和DI幫助了很多。
相關問題
- 1. (iphone)是一個壞主意?
- 2. 這本書「專業Javascript設計模式」 - 這是一個壞主意嗎?
- 3. 你知道另一種方式來做這個「大規模」linq過濾嗎?
- 4. 模塊有一個狀態是一個壞主意......?
- 5. Linq,是select()。SingleorDefault()是一個壞主意?
- 6. 這是一個裝飾模式或模式的變種嗎?
- 7. 如何改進這種設計(模式)?
- 8. 「刪除這個」是一個壞主意嗎?
- 9. 這個PHP代碼是一個壞主意嗎?
- 10. 匿名類是一個壞主意嗎?
- 11. 是SerializableWrappers收集一個壞主意?
- 12. 捕獲OutOfMemoryError是一個壞主意嗎?
- 13. -fPIC總是在一個壞主意?
- 14. 這是一個已知的模式?
- 15. 這是編程上的一個壞主意嗎?
- 16. 這是一個壞主意/練習會遇到什麼問題
- 17. PHP/MySQL的:消毒用戶輸入 - 這是一個壞主意?
- 18. 這是二維數組初始化一個壞主意嗎?
- 19. 匿名類實例----這是一個壞主意嗎?
- 20. 你知道如何解析這個嗎?
- 21. 更改現有Django模型上的app_label賦值是否是一個壞主意?
- 22. 這種方法是增加MySQL性能的好主意還是壞主意?
- 23. 你可以在nhibernate的一個會話內發生多個事務嗎?這是一個壞主意嗎?
- 24. ASP.NET和System.Diagnostics跟蹤 - 我錯過了什麼,或者這是一個壞主意?
- 25. Visual Studio中的錯誤,或者只是一個壞主意?
- 26. 想你知道Python RE嗎?這裏是一個挑戰
- 27. 綁定域模型直接是一個壞主意?
- 28. 使用ASP.NET MVC動態模型/ viewbag只是一個壞主意?
- 29. 正在使用has_and_belongs_to_many模型是一個壞主意?
- 30. 正在考慮構建一個SqlConnection方法......這是一個壞主意嗎?
Daniel提到的書是設計模式:可重用面向對象軟件的元素(http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612) ,有時被稱爲四人幫(或GoF)書。 – 2009-07-27 19:33:06