描述怎样创建对象,将对象的创建和使用分离
- 单例 singleton,一个类只能实例化一个对象
- 原型 prototype,根据基类指针拷贝出派生类对象
- 简单工厂 factory,根据名称创建对应的对象,本质是基类指针指向派生类对象实现多态
- 工厂方法,对象创建不再由工厂类进行,而是交由派生类执行
- 抽象工厂,一个工厂不只生产一种产品,而是可以生产多种产品
- 建造型 builder,产品的构造过程和表示是独立的
怎样将对象按照某种布局组成更大的结构
- 代理 proxy,为其他对象提供一个代理以控制该对象的访问
- 适配器 adaptor,将类的接口转为另一个接口,使得不相容的接口可以一起工作
- 桥接 bridge,将抽象和实现分离,用组合关系代替继承关系
- 装饰 decorator,动态地给对象增加功能
- 外观 facade,为多个子系统提供统一的接口
- 享元 flyweight,将对象共享以支持对象的复用
- 组合 composite,将对象组合成树状层次结构
对象间协作完成单个对象无法完成的任务
- 模版方法 template_method,定义一个操作的算法骨架,按照某种顺序调用其包含的基本方法
- 策略 strategy,将每个算法封装起来,使得可以相互替换
- 命令 command,将请求封装为对象,使得发出请求和接收请求分开
- 责任链 responsibility,把请求从链中的一个对象转移到下一个对象
- 状态 state,对象内部状态改变时改变其行为
- 观察者 observer,当一个对象发生改变时,将改变的通知发给其他的对象
- 中介者 mediator,定义中介对象简化原有对象间的交互关系
- 迭代器 iterator,顺序访问对象中的数据而不暴露对象的内部表示
- 访问者 visitor,在不改变集合元素的情况下,为集合的每个元素提供多种访问方式
- 备忘录 memento,在不破坏封装性的前提下,获取并保存一个对象的内部状态,以便以后恢复它
- 解释器 interpreter
其他代码仓库: