结构型设计模式
本文简要介绍7种类结构型设计模式。
适配器(Adapter)
适配器模式,强调将一个既有类”改造“成目标类型,这种”改造“不是重构,而是添加适配器,在适配器方法(与目标类型同)中调用既有类的功能,实现间接”改造“。
适配器有两种实现方法,多重继承和对象组合,前者只支持适配一个具体的类,后者允许适配既有类或其子类。根据实际场景选择最佳方案。
类适配器
采用类的多重继承实现:
对象适配器
采用对象组合来实现:
代理(Proxy)
代理模式,强调为既有类提供一种代理,以控制对既有类实例的访问。
享元(Flyweight)
享元模式,强调将一个类中的状态划分为内部状态和外部状态两类,以参数形式传入外部状态,从而归并类实例减小运行内存消耗。
组合(Composite)
组合模式,强调单个对象和组合对象的接口一致性,适合定义树形结构。
装饰(Decorator)
装饰模式,强调给一个对象添加一些额外职责。.NET Framework中的IO流深度使用了该设计模式。
外观(Facade)
外观模式,强调对客户屏蔽子系统组件,从而实现子系统与客户之间的松耦合关系。
桥接(Bridge)
桥接模式,强调抽象部分与实现部分分离,特别适合脱平台开发。