回答
研究。
阅读大量的说明,找到大量的例子。
先尝试阅读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设计模式