定义
是指在软件开发中,经过验证的, 用于解决在特定环境下、重复出现的、特定问题的解决方案。
是一套被反复使用、 多数人知晓的、经过分类编目的、代码设计经验 的总结。使用设计模式是为了可重用代码、让代 码更容易被他人理解、保证代码可靠性。
历史
GoF(Gang of Four“四人帮”,指Gamma, Helm, Johnson & Vlissides四人)的《设计模式》第一次将设计模式提 升到理论高度,并将之规范化,该书提出了23 种基本设计模式,自此,在可复用面向对象软 件的发展过程中,新的大量的设计模式不断出现。
组成
模式名称:为每个设计模式取的名字。
环境和问题:描述在什么场景下,出现什么样的特定问题。
解决方案:描述如何解决这个问题 。
效果:描述模式应用的效果以及可能带来 的问题,以便权衡。
分类
建型模式:抽象了对象实例化的过程, 用来帮助创建对象的实例
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton
结构型模式:描述如何组合类和对象以获得更大的结构
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
行为型模式:描述算法和对象间职责的分配
- Chain of Responsibility
- Observer
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- State
- Strategy
- Template Method
- Visitor