回答
研究。
阅读大量的说明,找到大量的例子。
先尝试阅读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. GOF和GRASP设计模式之间的区别是什么
- 3. 我很难与列表理解
- 4. 我很难理解这段JS代码
- 5. 很难理解Lisp中
- 6. SQL很难理解查询
- 7. Scala语法很难理解
- 8. 很难理解非同步
- 9. 有哪些可扩展性设计模式?它们的优缺点是什么?
- 10. 很难理解我的正则表达式功能的
- 11. 新与git - 很难理解为什么一个目录为空
- 12. 难以理解一些逻辑电路
- 13. TOGAF企业连续体中的GoF设计模式
- 14. 难道我们不能设置一些我们可以在XML中设置的样式属性吗?
- 15. 使用Visitor设计模式的一个很好的理由是什么?
- 16. 我们需要解决哪些难题来破解SHA,MD,DES?
- 17. 理解TensorFlow计算难度
- 18. 我喜欢他们的方式设计/建筑,但我怎么实现这个
- 19. 帮我清理一些难看的XML
- 20. C#GOF模式示例
- 21. 科特林:很难理解泛型
- 22. 面试问题:IDisposable很难理解吗?
- 23. 很难理解lambda函数在排序
- 24. 很难理解简单的算法
- 25. 哪些是困难模式?
- 26. 模板构造...它的工作原理,但感觉很难看
- 27. 难以理解一个数学公式
- 28. 生成器设计模式:为什么我们需要一个Director?
- 29. 我使用什么设计模式?
- 30. 我在想什么OOD设计模式?