创建型 | 结构型 | 行为型 |
---|---|---|
工厂方法(Factory Method)<类> | 适配器(Adapter)<类, 对象> | 解释器(Interpreter)<类> |
抽象工厂(Abstract Factory)<对象> | 桥接(Bridge)<对象> | 模板方法(Template Method)<对象> |
建造者(Builder)<对象> | 组合(Composite)<对象> | 责任链(Chain of Responsibility)<对象> |
原型(Prototype)<对象> | 装饰者(Decorator)<对象> | 命令(Command)<对象> |
单例(Singleton)<对象> | 外观(Facade)<对象> | 迭代器(Iterator)<对象> |
享元(Flyweight)<对象> | 中介者(Mediator)<对象> | |
代理(Proxy)<对象> | 备忘录(Memento)<对象> | |
观察者(Observer)<对象> | ||
状态(State)<对象> | ||
策略(Strategy)<对象> | ||
访问者(Visitor)<对象> |
23种设计模式
广为流传的23中设计模式来源于面向对象软件设计的经验总结,这些模式都是经常能用到的重复设计,了解这些模式能够让我们更加简单方便地复用已有的成功设计。本系列会一一介绍23中设计模式,主要内容从《设计模式-可复用面向对象软件的基础》中总结而来。
设计模式分类
按照目的进行分类,设计模式被分为创建型、结构型、行为型。
- 创建型模式:创建对象相关
- 结构型模式:处理类或对象的组合
- 行为型模式:描述类或对象之间的交互和职责分配
按照范围进行分类,设计模式被分为类模式、对象模式。
- 类模式:处理类和子类之间的关系,通过继承建立,在编译时已经确定
- 对象模式:处理对象之间的关系,在运行时可变化
创建型 | 结构型 | 行为型 |
---|---|---|
工厂方法(Factory Method)<类> | 适配器(Adapter)<类, 对象> | 解释器(Interpreter)<类> |
抽象工厂(Abstract Factory)<对象> | 桥接(Bridge)<对象> | 模板方法(Template Method)<对象> |
建造者(Builder)<对象> | 组合(Composite)<对象> | 责任链(Chain of Responsibility)<对象> |
原型(Prototype)<对象> | 装饰者(Decorator)<对象> | 命令(Command)<对象> |
单例(Singleton)<对象> | 外观(Facade)<对象> | 迭代器(Iterator)<对象> |
享元(Flyweight)<对象> | 中介者(Mediator)<对象> | |
代理(Proxy)<对象> | 备忘录(Memento)<对象> | |
观察者(Observer)<对象> | ||
状态(State)<对象> | ||
策略(Strategy)<对象> | ||
访问者(Visitor)<对象> |
设计模式之间的关联
持续补充…