(learn&think)

不浮躁,不自傲,学习,思考,总结

浅谈设计模式

| Comments

读完 GOF 的Design Patterns: Elements of Reusable Object-Oriented Software和图文并茂的Head First Design Patterns,一时并不是那么快消化和理解,所以试着用自己的语言总结一下。

《Design Patterns》在 Introduction 章中”如何选一种模式设计”一节中给出了一张表格,5 个创建模式(Abstract Factory; Builder; Factory Method; Prototype; Singleton),7 个结构模式(Adapter; Bridge; Compose; Decorator; Facade; Flyweight; Proxy)和 11 个行为模式(Chain of Responsibility; Command; Interpreter; Iterator; Mediator; Memento; Observer; State; Strategy; Template Method; Visitor)。

设计模式提倡:

  1. 面向接口编程而不是实现;
  2. 使用组合优于继承;
  3. 程序模块低耦合,高内聚
  4. 独立出变化部分,适应后期变化

设计模式并不是只局限 OO 中,主要理解设计模式的思想,但它也引入了一定的复杂度,不要烂用设计模式,宗旨是写简单而清晰的代码。

The best way to learn to write simple code is to write simple code! Patterns, like all forms of compexity, should be avoided until they are absolutely necessary. That’s the first thing beginners need to learn. Not the last thing.1

所有例子的代码在这里

Comments