适配器模式
适配器模式的实现可分为两种, 一种称为类适配器,一种称为对象适配器
1. 类适配器
UML图如下, 适配器通过实现目标接口(Target),并通过组合的方式获取被适配对象(adaptee)的实例,从而实现适配,这种方式相对来讲更加灵活:
它不仅可以适配被适配接口(adaptee),还可以适配被适配接口的子类(adaptee的子类); 如果子类有需要,可以重写被适配接口的某些方法,依然可以被正常适配
虽然UML图中只给出了一个被适配对象,事实上适配器可以适配多个接口,从而实现目标接口. 适配器模式的关键点不在于它适配了多少个接口,而在于它通过提供适配器,将原来旧的接口适配到了新的接口上,与数量无关.
推荐使用这种方式实现适配器模式
2. 对象适配器
UML图如下,这是适配器模式的第二种实现,它是通过实现目标接口(target),并继承被适配对象(adaptee2)实现的. 它的优缺点如下:
实现方式简单,可以很方便地对被适配对象(adaptees)的方法进行重写.
只能适配被适配器对象(adaptee2),无法适配被适配器对象的子类;如果子类对被适配器进行了重写,则需要重新实现适配器对象(adapter)
不推荐使用这种方式实现适配器模式