@
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这玩意的“用意”,就够了。