上篇我们介绍完了创建型模式,今天我们继续总结结构型模式,它分别包括适配器模式、装饰模式、桥接模式、组合模式、享元模式、代理模式和外观模式。
1、适配器模式
定义:将一个类的接口转换成客户希望的另外一个接口。--------------双方都不适合修改的时候考虑适配器模式
图例:
2.装饰模式
定义:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活。
优点:装饰模式就是把要添加的附加功能分别放在单独的类中,并让这个类包含它要装饰的对象,当需要执行时候,客户端就可以选择的按顺序的选择装饰功能.
图例:
3、桥接模式:
定义:将抽象的部分,实现部分分类,是他可以独立变化。
PS:如果继承不能满足开放-封闭原则的话考虑桥接模式。
图例:手机品牌和手机软件的关系。
4、组合模式
定义:将对象组合成树形模式以表示”部分-整理“的层次结构,组合模式使得对象对单个对象和组合对象的使用具有一致性。
优点:整体和部分可以被一致对待。
5、享元模式
定义:运用共享技术有效的支持大量细粒度的对象。
优点:如果一个程序大量的是用对象,而且这些对象造成很大的存储开销时候考虑。
6、代理模式
定义:对其他对象提供一种代理以控制对这个对象的访问
优点:
a、远程代理:可以隐藏一个对象在不同空间地址的事实。
b、虚拟代理:通过代理来存放需要很长时间实例化的对象。
c、安全代理:用来控制真实对象的访问权限。
d、智能引用:当调用真实对象时,代理处理另外一些事情。
图例:
7.外观模式
定义:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得子系统更加容易使用。
图例: