我是一个迷茫的新手和爱好者程序员,试图掌握这方面的知识,如果我的问题有点偏离或不太合理,请原谅。
我在SO上看到很多关于使用设计模式的问题,我想知道有没有好的资源可以学习和实现设计模式?我了解一般的思路,并知道如何/何时使用其中的几种(Singletons、工厂方法),但我知道我还有很多东西需要学习。
(只是以防万一,我的首选语言是C#,但我也可以从其他语言的例子中学习)
我是一个迷茫的新手和爱好者程序员,试图掌握这方面的知识,如果我的问题有点偏离或不太合理,请原谅。
我在SO上看到很多关于使用设计模式的问题,我想知道有没有好的资源可以学习和实现设计模式?我了解一般的思路,并知道如何/何时使用其中的几种(Singletons、工厂方法),但我知道我还有很多东西需要学习。
(只是以防万一,我的首选语言是C#,但我也可以从其他语言的例子中学习)
对于初学者来说,设计模式维基百科页面和FluffyCat都是最好的资源,可以帮助您学习Java和PHP中的设计模式。不过,四人帮的书比较高级,建议在掌握其他资源后再去阅读。
设计模式有很多好处:
但是,如果你的目标只是学习设计模式,那么我认为你正在错过基础知识。所有设计模式都基于更常见的原则。高内聚、低耦合、开闭原则、DRY、里氏替换原则等等。关于这些基本原则,我建议按以下顺序阅读以下书籍:
之后,您就可以了解基本的四人帮设计模式。
接下来:
记住:设计模式并非目标!
我想补充的是,“四人帮”所著的《设计模式》这本书对于任何真正对设计模式感兴趣的人来说都是必读经典。
我的建议:
从不同的来源阅读大量关于设计模式的内容。
在编写代码时,试图尽可能多地强制使用所有的设计模式是不会带来好的结果的。相反,让这些信息在你的大脑中沉淀一段时间(即几个月)。
突然间,你会遇到一个问题或者一段代码,你依稀记得你看过一些东西可以作为解决这个特定问题的方法。现在是查找你想要应用的设计模式细节并尝试应用它的时候了。
这就是对我有效的方法。
本教程网站包含以下子部分:
本网站还包含有关反模式,UML和重构的指南。
Bruce Eckel有一本关于设计模式的书籍,虽然是Java方面的,但像他所有的书一样令人惊叹。最好的事情是,它们都是免费的!
不要从四人帮的书开始阅读,因为它绝对不是一本入门书。
对以上评论的注解。
GOF设计模式快速参考
这里是一个不错的起点:dofactory.com/patterns/patterns.aspx - 你可以找到每个模式的链接以及相应的实现。
然而,记住这些都是GOF模式。一旦你在OOAD方面获得足够的专业知识,还可能需要阅读和理解高级模式。《Head First设计模式》是一个很好的起点,进展一段时间后,再去看Martin Fowler的《企业应用架构模式》。
应用设计模式-思维过程
另一个主要方面-应用设计模式与仅仅了解它们一样重要。阅读这些文章也可能对你有所帮助。
希望这能有所帮助。