定义
- 设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,
- 目的:使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
- GoF:Gang of Four
- Erich Gamma:苏黎世大学计算机科学博士,是Eclipse、JUnit 等项目主要技术负责人之一。
- Richard Helm:墨尔本大学计算机科学博士,原IBM 研究员,现在波士顿顾问集团供职。
- Ralph Johnson:康奈尔大学计算机科学博士,伊利诺伊大学教授。
- John Vlissides:斯坦福大学计算机科学博士,原IBM研究员。 于2005年11月24日因脑瘤去世,享年44岁。
分类
根据目的:创建型模式、结构型模式、行为型模式
- 创建型模式:主要用于创建对象;对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。
- 结构型模式:主要用于处理类或对象的组合
- 行为型模式:主要用于描述对类或对象怎样交互和怎样分配职责
根据范围:类模式、对象模式
- 类模式:处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。
- 对象模式:处理对象间的关系,这些关系在运行时刻变化,更具动态性。
矩阵图
范围\目的 | 创建型模式 | 结构型模式 | 行为型模式 |
---|---|---|---|
类模式 | 工厂方法模式 | (类)适配器模式 | 解释器模式 模板方法模式 |
对象模式 | 抽象工厂模式 建造者模式 原型模式 单例模式 | (对象)适配器模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 | 责任链模式 命令模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 访问者模式 |
UML 类图基础
- 要搞清楚设计模式,必须搞清楚类之间的类图,类的关系如何表示