1
Mutoo 2014-05-05 18:47:51 +08:00 1
貌似23种设计模式从90年代由 GoF 提出来后,就没有增加过。不过在不同领域的应用会很不相同。
前段时间阅读了 Game Programming Patterns 里面介绍了游戏中常用的模式,以及游戏开发领域独有的模式。 但这不属于GoF,在其它领域也不适用。 http://gameprogrammingpatterns.com |
2
Madimo 2014-05-05 22:11:23 +08:00 1
《设计模式解析》这本书不错,目前正在看
http://book.douban.com/subject/20406704/ |
3
akfish 2014-05-05 22:20:26 +08:00 1
就最原始的<Design Patterns>就行,粗读一遍,然后开始撸项目,只拿来当reference用。
然后你开始看大中型项目的源代码,UI框架的看几个,MVC的App看几个。到后来看项目目录怎么组织的就能知道是什么pattern,反正我是这样的。 撸几个项目你就发现根本不用刻意去想,写出来的代码自然就是某种pattern。 正所谓大巧不工,重剑无锋。 |
5
akfish 2014-05-05 22:35:37 +08:00 1
@WildCat iOS的没注意过,不用局限于某个平台嘛,也就是各种命名规范和语法不同而已,Design Patterns是超越语言超越平台的存在。
|
6
fityme 2014-05-05 22:53:36 +08:00 1
Head first那本还不错,讲的很生动,但是略厚。楼上推荐的设计模式解析相当赞,不过相对而言比Head first更难懂一些(废话少了点儿,语言更简练
|
7
arbipher 2014-05-05 23:03:53 +08:00 1
@Mutoo 我也刚看完《Game Programming Patterns》。HN每周精选推送的,就看了一下。我不写游戏,但是我觉得用游戏做例子挺好理解的。这本书作为Patterns的书,不如作为基础书更好。作者对Compilers、Prototype、Virtual Machine的解释都挺好的。
此外还看过GoF的原版和《Head First Design Patterns》。 楼主先看《Head First Design Patterns》就好了。看完不过瘾再看GoF原版,如果看懂了,GoF不看也罢。 设计模式的核心就是indirection。 大多数设计模式都在降低耦合,比如从静态绑定推延到动态绑定,比如分离构造函数(factory method),比如分离访问函数(visitor),比如分离逻辑判断(state machine)。 但是不可能把所有部分全都分离了。另一个重点是预测变化,预测程序可能在什么地方发生变化,为了减少发生这种变化时需要修改的代码,需要降低哪些部分之间的耦合度。 有些模式只在静态OOP语言中有用途。有些是优化用的,Flyweight。还有些被喷的,比如Singleton。 结论是如果看了《Head First Design Patterns》,你知道Patterns这玩意的“用意”,就够了。 |
8
sivacohan 2014-05-06 10:24:15 +08:00 1
看《UNIX编程艺术吧》。
知其然,知其所以然。 除了学习设计模式,我们还需要知道设计模式是在什么情况下产生的。目的是解决什么问题。 |