设计模式 GOF23

维基百科 - Gang Of Four 23

维基百科 - 设计模式:可复用面向对象软件的基础

0. 概述

设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结

使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。

1. 分类

1.1 创建型模式:

关注对象的创建过程

创建型模式旨在将系统与它的对象创建、结合、表示的方式分离。这些设计模式在对象创建的类型、主体、方式、时间等方面提高了系统的灵活性。

序号 模式名称 简要描述
1 单例模式 保证一个类只有一个实例,并且提供一个访问该实例的全局访问点
2 工厂方法模式 使用工厂方法代替new操作,将选择实现类、创建对象统一管理和控制
3 抽象工厂模式 工厂方法模式的升级,增加产品族的概念
4 创建者模式 复杂对象的创建
5 原型模式 克隆模式,复制对象

1.2 结构型模式:

关注对象和类的组织

序号 模式名称 简要描述
1 适配器模式 将一个对象/类/接口转换为另外一个调用者能够使用的对象/类/接口
2 装饰模式 动态为对象新增功能,用于代替继承
3 组合模式 使用统一的方式,处理部分对象和整体对象; 描述对象的部分和整体的关系
4 外观模式 为子系统提供统一的入口,封装子系统的复杂性,便于调用者调用
5 代理模式 控制对对象的访问; 在不改变原有习惯的条件下,提供另外一种方式提供服务
6 桥接模式 解决多维度问题
7 享元模式 共享不随环境改变的内部状态

1.3 行为型模式:

关注对象之前的相互交互

序号 模式名称 简要描述
1 模板方法模式 定义一个操作中的算法骨架,将某些无法确定的步骤延迟到子类中实现
2 观察者模式 1:N的通知,一个对象状态发生变化是,及时告知一系列对象,令他们做出响应
3 状态模式 用于解决系统中复杂大对象的状态转换以及不同状态下行为的封装问题
4 策略模式 解决某一问题的一个算法族,允许调用者选用算法族中的何种算法解决某一问题
5 职责链模式 将能够处理同一类型请求的对象连起来,所提交的请求沿着该链传递; 逐个判断是否有能力处理该请求,如果能则处理,不能则传递给链上的下一个处理对象
6 命令模式 事务模式,
7 迭代器模式 可遍历聚合对象的方式
8 中介者模式 解耦同事类的交互,其交互通过中介者
9 备忘录模式 副本 恢复 (Ctrl+Z)
10 解释器模式 如果你需要开发一种新语言,可以考虑使用这种模式
11 访问者模式 对一个集合中的对象(可能类型不同),在不改变原有的类型前提下,定义作用于这些元素的新操作
文档更新时间: 2018-11-10 22:43   作者:nick