结构模式描述如何将类或者对象结合在一起形成更大的结构。再来回顾一下各个结构模式的意图和结构。
意图
适配器模式是一种类对象结构性模式,其意图是将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能再一起工作的那些类可以一起工作。
结构
适配器模式包括2种形式,
1、类适配
2、对象适配
主要包含如下几个部分:
详见《适配器模式浅析》
意图
将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。
结构
组合模式的基本结构如下:
这里涉及到的参与者有如下几种:
参与者如何协作?
用户使用Component类接口与组合结构中的对象进行交互。如果接收者是一个叶子节点,则直接处理请求。如果接收者是Composite,它通常将请求发送给它的子部件,在转发请求之前与/或之后可能执行一些辅助操作。
详见《组合模式浅析》
意图
动态地给一个对象添加额外的职责。
结构
装饰者模式的基本结构如下:
定义一个对象接口,可以给这些对象动态地添加职责。
定义一个对象,可以给这个对象添加一些职责。
装饰角色,持有一个Component对象的实例,并定义一个与Componnet接口一致的接口。
具体装饰角色,负责给组件添加职责。
详见《装饰者模式浅析》
意图
为其它对象提供一种代理以控制对这个对象的访问。我们可以使用代理模式在目标对象实现的基础上,以增加额外的功能操作或者逻辑,即可扩展目标对象的功能。
结构
代理模式的基本结构如下:
定义和RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy。
定义Proxy所代表的实体。
保存一个引用使得代理可以访问实体。
详见《聊聊代理那些事》
5. 享元模式的基本介绍
意图
运用共享技术有效地支持大量细粒度的对象。
结构
享元模式的基本结构如下:
这里涉及到的参与者有如下几种:
详见《享元模式浅析》
6. 门面模式的基本介绍
意图
门面模式是一种对象结构型模式,其意图是为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
结构
门面模式的基本结构如下:
详见《门面模式浅析》
7. 桥接模式的基本介绍
意图
将抽象部分与它的实现部分分离,使它们都可以独立的变化。
结构
桥接模式的基本结构如下:
这里涉及到的参与者有如下几种:
详见《桥接模式浅析》
不知不觉,已经将结构模式都写了一遍了,有兴趣的朋友可以一起研读、交流。