我注意到最近几周,具有较高经验的程序员不经常讨论“编码”问题,而是讨论设计问题。我真的很想了解这些模式,我知道OO编程和设计的概念,我已经在我的日常工作中应用了相当多的这些原则,我试图保持我的组件模块化,可重用,并且每个都有一个具体,明确的责任。最近我被建议开始学习各种设计模式(顾问建议code complete作为开始),他提到了一些流行模式的名称(如MVC,SingleTon等)。那么大师们!我应该如何开始学习这些模式?
编辑:
由于详细解释,我认为我是goona给Saua点了
答案 0 :(得分:14)
这更多的是观察报告而不是教学清单; - )
答案 1 :(得分:6)
“Head-First Design Patterns”可能是一种有趣的开始方式(也请查看链接上的讨论)。
答案 2 :(得分:2)
答案 3 :(得分:1)
虽然Code Complete是一本优秀的书(在我看来绝对是必备的),但它并不是学习模式的最佳书籍。
如果你想了解模式,一本好书将是四人帮的Design Patterns书。它是对一些常用设计模式的参考。
至于你提到的模式:我将MVC模式更多地看作是一种架构模式,然后是设计模式,因为它影响整个系统(架构)的结构,而不是更孤立的代码片段。单身(不单线)是一个容易掌握的模式,虽然它被过度使用,但它的缺点往往被忽视,所以我不建议从它开始(或至少,阅读它,了解它背后的想法,但不要只是为了使用它而开始在任何地方应用它 - 你通常不会真的需要它。)
很难推荐一个模式开始,但我认为工厂方法,命令和策略不是很难学,但我相信其他人可能不同意。
答案 4 :(得分:0)
从Gang of Four开始:http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1238418597&sr=8-1。有点过时但是..
答案 5 :(得分:0)
除了这里提到的书籍之外,请查看this网站了解一些理论并提供很好的例子。