tva*_*son 19
我建议反转控制/依赖注入.这在单元测试时非常方便,因为它使您能够为被测试的类提供模拟依赖项.在封装密封类以使其在测试场景中更有用时,代理也非常有用.
如果我提出另一个建议,我将专注于学习哪些模式在不同情况下有用,而不是专注于学习如何实现特定模式.您几乎总能找到在实现模式时使用的参考实现,但能够辨别何时以及使用哪种模式将使模式更有用.如果你开始以另一种方式解决问题,你最终会使你的问题符合你所知道的模式,而不是应用适合问题的正确模式.
设计模式不是您快速开始阅读和学习的主题.您将不得不做许多练习,然后应用您在实际场景中学到的知识.如果你的时间真的有限,那么你可能会浪费你的时间.我建议使用Head First Design Patterns这本书.
但是你对OO的了解应该是一个相当高的标准.
你的问题就像是在问:"我想学习C#,但只有时间学习一些关键词.我应该学习哪些?"
任何一种设计模式都不是真空.它们都定义了应用程序如何组合在一起的不同方面.任何一个应用程序都不太可能需要所有已知的设计模式,但每个应用程序都是不同的,您需要为每个应用程序提供不同的组合.知道不使用什么与知道使用什么同样重要.您至少需要所有主要设计模式的对话知识.
先从这个名单和Head First设计模式以前这里提到的书.了解所有这些.不要抱怨没有时间 - 花时间!离开FaceBook几晚或者跳过星际迷航重新运行一两次.
此外,除非你真的是OO大师,否则首先要避免使用GoF模式书.它非常密集,立即让您了解模式的价值和需求.这是一本好书,不是一本好书.