回答
研究。
閱讀大量的說明,找到大量的例子。
先嚐試閱讀Head First Design Patterns。如果GOF超過你的頭,你會發現這是一個更溫和的介紹。
無論如何,如果你決定閱讀GOF書。編寫書中的例子。練習很多,然後事情變得更容易和更容易。
嘗試使用this SO鏈接爲例。這對我來說真是棒極了..
- 你需要得到理論的理解,什麼是關於推理和主要當一個給定的模式應適用。
- 代碼你自己的例子。你需要練習。根據我的經驗,直到你首次在實踐中使用它,你纔會明白一個模式(足夠深入)。
注意,永遠不要試圖強迫自己實現模式,只是因爲你想擁有它,或者「因爲它似乎是‘酷’來使用它。在大多數情況下,這隻會增加複雜性。圖案應該自然地融入你的代碼,並給你帶來好處,例如可重用性,可測試性更高,更好的可維護性,...
一般來說,雖然,我發現學習模式提高你的編碼能力有了顯着。
玩得開心
設計模式可能很複雜,我見過很多人誰誤解了一些細節,因爲他們看不到的一些模式以及在何處使用它們之間的diffence人。
您可以從網上的書籍,演員表或教程中學到很多東西。任何編程語言或工具上的一些最好的實踐,去網上。但是在設計模式上,找一個有時間的高級開發人員。跟他說話,讓他解釋一下。向他展示一些代碼並詢問他,哪種模式可以讓你的生活更加輕鬆。這可能比讀書更有助於你。
過去幾天我一直在說這很多,但是讀了these 2 ebooks,大量關於如何設計/開發/改進代碼的很好的信息。
恕我直言,爲什麼很容易與所有不同的模式鬥爭,當你看到他們作爲很多不相關的部分,沒有共同的目標。以上關於SOLID的電子書更多的是涉及到的原則,所以你可以看到一個清晰的故事,說明你獲得了什麼。
所有設計模式都基於非常基本的原則。
如果先花時間先了解的基礎知識,然後你甚至不需要學習任何設計模式,因爲如果你遵循的基本原則,你會得出同樣的答案,因爲設計模式。
它們是:
SRP - The Single Responsibility Principle
一類應該有一個,且只有一個理由去改變。
OCP - The Open Closed Principle
您應該可以在不修改它的情況下擴展一個類的行爲。
LSP- The Liskov Substitution Principle
派生類必須可替代其基類。
ISP - The Interface Segregation Principle
使細粒度的接口是客戶特定的。
DIP - The Dependency Inversion Principle
取決於抽象,而不是結核。
享受你的旅程。
- 1. 設計模式?我怎麼理解他們
- 2. 我很難理解一些Ruby代碼
- 3. GOF和GRASP設計模式之間的區別是什麼
- 4. 有一個很難理解&實施一些Ruby代碼
- 5. C++中的設計模式(GoF模式)實現
- 6. 我很難理解此代碼
- 7. 我很難理解類型字符
- 8. 我很難與列表理解
- 9. 我很難理解這段JS代碼
- 10. 爲什麼委派模式不屬於23 GoF的設計模式?
- 11. MVC模式:一些難點
- 12. SQL很難理解查詢
- 13. 很難理解語法
- 14. 很難理解輸出
- 15. 很難理解Lisp中
- 16. 很難理解jQuery代碼
- 17. 很難理解非同步
- 18. 很難理解在AngularJs
- 19. Scala語法很難理解
- 20. 學習Python困難的方式Ex39,很難理解它的代碼
- 21. 有哪些可擴展性設計模式?它們的優缺點是什麼?
- 22. 我該怎麼處理vhdl設計?
- 23. 如果我們不使用工廠設計模式,該怎麼辦?
- 24. 很難理解我的正則表達式功能的
- 25. 很難理解這個解決方案。
- 26. 新與git - 很難理解爲什麼一個目錄爲空
- 27. 難以理解一些邏輯電路
- 28. 很難理解Popcorn.js timeupdate功能,因爲它是不是在某些情況下
- 29. GoF設計模式和SOLID之間的連接
- 30. TOGAF企業連續體中的GoF設計模式