设计模式(结构型)

169 阅读2分钟
结构型模式,共七种: 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

1.代理模式(委托模式)

为其他对象提供一种代理以控制对这个对象的访问。

场景:控制访问,添加额外行为等。

2.组合模式

将一组相似地对象看做一个对象处理,并根据一个树状结构来组合对象,然后提供一个统一的方法区访问相应的对象,以此忽略掉对象与对象结合之间的差别。

如文件系统DIR与File的组合,控件系统View与ViewGroup的组合。

3.适配器模式

把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够一起工作。

类适配器,继承,Adapter类出现一些奇怪接口,用户成本高。

对象适配器,代理,推荐方式。

如ListView的Adapter,用来适配各种ItemView。

4.装饰模式

动态地给一个对象添加一些额外的职责,继承关系的一种替代方案。

装饰模式是以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案;为所装饰的对象增强功能;

代理模式则是给一个对象提供一个代理对象,并由代理对象来控制对原有对象的引用;对代理的对象施加控制,不对对象本身的功能进行增强。

5.享元模式

缓存可共享对象,提升性能。

内部状态(可共享),外部状态(不可共享)。

如买火车票查询,A到B是Ticket内部状态,不同车票类型是外部状态。

6.外观模式---SDK开发

通过一个外观类统一对外接口,外观类引用子系统,从而对外提供交互能力。

如网络框架里对各个子系统的封装。

7.桥接模式

将可以独立变化的两个部分分离。

比如大中小杯的咖啡和不同的佐料,只需要抽象咖啡类持有对抽象佐料类的引用即可。