适配器是将一个接口改变成另一个接口
    外观是提供一个简化的接口
    装饰器不改变接口,但加入新的功能

    外观模式为现有对象定义了一个新接口, 适配器模式则会试图运用已有的接口。
    适配器通常只封装一个对象, 外观通常会作用于整个对象子系统上。
    外观类通常可以转换为单例模式类, 因为在大部分情况下一个外观对象就足够了。

    适配器能为被封装对象提供不同的接口, 代理模式能为对象提供相同的接口, 装饰则能为对象提供加强的接口。

    适配器可以对已有对象的接口进行修改, 装饰模式则能在不改变对象接口的前提下强化对象功能。 此外, 装饰还支持递归组合, 适配器则无法实现。