一、代理模式
(一)概念
为某对象提供一种代理以控制对该对象的访问。(proxy)
(二)图示
(三)适用
- 远程代理
- 虚拟代理
- 安全代理
- 智能指引
- 延迟加载
二、适配器模式
(一)概念
将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。(Adapter)
(二)图示
(三)适用
- 系统需要使用现有的类,而此类的接口不符合系统的需要。
- 想要建立一个可以重复使用的类
- 通过接口转换,将一个类插入另一个类系中。
三、桥接模式
(一)概念
桥接模式是将一个抽象与其实现分离开,以便两者能够各自独立地演变。(Abstraction)
(二)图示
(三)适用
- 在抽象和具体实现之间需要增加更多的灵活性的场景
- 一个类存在两个或多个独立变化的维度,而这两个或多个维度都需要独立进行扩展
- 不希望使用继承,或因为多层继承导致系统类的个数剧增
四、装饰模式
(一)概念
动态地给一个对象附加额外的职责,不必通过子类就能灵活地增加功能。(Decorator)
(二)图示
(三)适用
在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时。