适配器模式:把一个类的接口变换成客户端索期待的另一个接口,从而使原本因接口不匹配而无法在一起工作的两个类能在一起使用
decorator模式:装饰模式以对客户端透明的方式将一个对象的功能加以扩展。为功能的扩展提供了一个除继承关系之外的另一个可选方案。
代理模式:给某一个对象提供一个代理对象,并由代理对象控制原对象的引用。
flyweight模式:以共享的方式高效地支持大量的细粒度对象
facade模式:外部与一个子系统的通信必须通过一个统一的门面对象进行。提供一个高层次的接口,使得子系统更易于使用。