意图:使控制范围之外的一个原有对象与某个接口匹配。
问题:系统的数据和行为都正确,但接口不符。通常用于必须从抽象类派生时。
实现:将原有类包含在另一类中。让包含类与需要的接口匹配,调用被包容类的方法。
Adapter模式有两种类型:
对象Adapter模式:依赖于一个对象(适配对象),包含另一个对象(被适配对象)。
类Adapter模式:通过多重继承实现。
类Adapter模式工作原理:
创建一个新类,该类同时从两个类继承:
从定义其接口的抽象类公开继承;从访问其实现的原有类私有继承。
Facade模式与Adapter模式之间的区别:
1、都存在既有的类
2、Facade模式无须按某个接口进行设计;而在Adapter模式中,则必须按某个特定的接口进行设计。
3、Facade模式不需要多态;Adapter模式多态行为可能是需要的
4、Facade模式动机是简化接口;Adapter模式必须遵循一个已有的接口,不能简化任何东西。