對於設計模式,新手可以推薦一個開放的代碼庫(最好在java中),它具有明確且優雅的設計模式。讀GOF讓我感到困惑,我正在尋找一個項目,使用了一些互相交流的模式。 謝謝。設計模式豐富的代碼庫?
回答
你可以看看JUnit和它的一些docs。另外,JUnit本身是非常有用的工具。我認爲任何Java開發人員都必須知道如何使用它。
您還可以找到有趣的對話與埃裏希·伽馬,貼在Artima.com:
- How to Use Design Patterns
- Erich Gamma on Flexibility and Reuse
- Design Principles from Design Patterns
- Patterns and Practice
- Eclipse's Culture of Shipping
也許,並非所有對話都與你的問題相關,但它們都非常有趣。
感謝Rorick,該文檔正是我尋找的那種示例 – user121455 2009-10-14 15:03:50
很高興分享)這些文檔對我來說非常有用。 – Rorick 2009-10-14 15:07:34
我認爲沒有任何代碼庫適用於設計模式。這些模式的應用程序從項目到項目都是不同的
該模式是一種指南,是在開發生命週期中一直存在的常見編程或設計問題的經過驗證的解決方案。
我想建議閱讀首先設計模式書,這是非常重要的,並有一個很好的例子。
Regards
JDK本身有一些很好的例子。
例如,InputStream
/OutputStream
,Reader
/Writer
實現演示裝飾圖案的使用,在這個意義上,可以以層上的附加功能與另一實現包裹的OutputStream。
而不是代碼庫,我會推薦oreilly的Head First design Patern的閱讀。 這本書包含一些真正的教學例證。
但JDK也充滿了設計模式。 你可以找到Observer/observable,Iterator。或者更隱蔽,裝飾了Java I/O API
頭部的第一個設計模式非常超額,它的模式非常糟糕。我花了很多時間糾正本書創作的思想概念。 – 2009-10-15 10:18:00
在我可以建議只是在看維基百科而不是GoF的?我發現這本書很難閱讀,但Wikipedia Article on Design Patterns對我來說非常有用。
然後,它深入到有用的例子,如Singleton,Lazy Initialization,Decorator等,都具有良好的代碼示例,並全部免費。
我想你需要看的模式是如何在實踐中應用在現實世界中,這本書 Core J2EE Patterns: Best Practices and Design Strategies (2nd Edition)是顯示了用於產生真正的Java Web應用程序的主要模式的基準點書。
- 1. 設計豐富的列表
- 2. Silverlight設計模式的性能 - 非常豐富的客戶端UI
- 3. 豐富的編輯控件:防止豐富的格式?
- 4. 擴展豐富域模型
- 5. 將焦點設置到豐富:編輯在豐富:modalPanel當模式面板彈出
- 6. 模式設計的vbscript代碼
- 7. 圖形豐富的Javascript餅圖庫
- 8. 豐富的iPhone界面庫組件?
- 9. 豐富的熱鍵來取代a4j:commandButton
- 10. UIWebView豐富內容的替代方案?
- 11. 代碼設計模式結構
- 12. PHP代碼設計,結構,模式..?
- 13. laravel io源代碼設計模式
- 14. 快速而豐富的GUI設計器/構建器
- 15. 爲Android和iPhone設計豐富的網站
- 16. 如何設計豐富網頁摘要的元素?
- 17. 豐富 - 有缺陷的數字代碼不顯示結果
- 18. 豐富的文本編輯筆記(與代碼片段)
- 19. 如何在magento產品中實現豐富的代碼片段?
- 20. 異步輸出到豐富的文本框,而代碼運行
- 21. 代碼優先 - 存儲庫模式 - 設計注意事項
- 22. 豐富:具有豐富的dataTable doesn't工作:scrolldata
- 23. 豐富的面孔 - 豐富:列下一行
- 24. Python庫豐富HTML文本渲染
- 25. 豐富modalpanel自動
- 26. Rails的豐富的聯想
- 27. 如何頂級豐富:panelMenu豐富:outputPanel與h:panelGrid?
- 28. 豐富的壓延字段
- 29. RichFaces的豐富:小面
- 30. 豐富的Firebase通知(FCM)
我可以用Java中的例子給你提供更好的和讀者友好的書嗎? O'Reilly的首要任務:設計模式(http://oreilly.com/catalog/9780596007126) – 2009-10-14 14:56:30