【1】引入
结构型模式包括适配器模式,装饰模式,桥接模式,组合模式,享元模式,代理模式,外观模式。
【2】单个模式简介
一:桥接模式
就是将抽象类和实现类分离开来,让其独立变化,减少它们之间的耦合,然后通过 桥接, 相互关联,这里就涉及到合成/聚合复用原则。(以避免过多的继承造成大量的类增加)。
二:组合模式:
就是当多个对象以树形结构表示部分-整体的关系时,引入组合模式。
客户可以一致的使用组合结构和单个对象,任何用到基本对象的地方都可以使用组合对象,只是将请求发给它的子部件而已。
三:装饰模式:
为已有功能动态的添加更多功能的一种方式。通过在客户端中,根据需要有选择的,按照一定的选择顺序使用装饰功能包装对象。
通过动态,透明的方式给单个对象添加职责,并在不需要时,撤销相应的职责。
四:享元模式:(我们的博客就是一个很好的实例,通过ID账号)
通过共享技术有效的避免大量的对象的存储开销,对于对象的外部状态和内部状态,内部状态就是指一些共性的东西,而外部就是可变的一些东西,例如我们博客账号。
五:适配器模式(Adapter)(电压转换)
就是将一个接口转化为用户想要实现的接口,Adapter(相当于翻译者)使得由于接口不兼容而不能在一起工作的两个类联系起来。
六:外观模式:(10086服务)
为子系统中的一组接口提供一个一致的界面,即外观类。此模式定义了一个高层接口,这个接口使得客户的请求代理给适当的子系统对象。
七:代理模式:(我们的律师)
就是代理真正的对象,以达到管理这个对象被访问的目的。和真实对象有共同的接口。
【3】模式之间对比
1·适配器模式VS外观模式VS代理模式
代理模式和外观模式相比,代理模式是具体的一个对象的代表,而外观模式则是代表一个子系 统;其次,访问代理模式的客户无法直接访问被代理的目标对象,而访问外观模式的客户 可通 过外观对象提供的对子系统各对象访问的接口而访问其目标对象。
代理模式和适配器模式相比,代理模式只是目标对象的代表,其它和目标对象打交道的操作直接和代理模式交互,而适配器模式则是将现存的类的接口转为目标类所需要的接口,中间起协同作用。
2·桥接模式VS适配器模式
应用阶段不同。桥接模式是在设计之初,在抽象类和实现类两者独立变化的基础上,再对其进行桥接,
而适配器则是多用于维护阶段,不需要对两个独立的类中任一个进行重新设计,只是改变接口,使其协同工作。
【4】总结
结构型模式就是在程序的结构上解决模块之间的耦合作用。