设计模式学习(九)(适配器模式)

模式名称

适配器模式(Adapter Pattern)

对象适配器类图

类适配器类图

解决问题

将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。

就比方说电源适配器这个道理,大家可能都有过用港版/欧版……电子产品的经历,这个时候我们并不能把电源插头直接插到大陆的电源上,而是需要一个转接器(适配器),这就是适配器模式。

解决方案

对象适配器(适用于单继承语言)

1.设置适配器接口。

2.适配器实例继承适配器接口,并且将需要适配的对象放到自己的类内部当中。

3.编写合适的适配函数。

类适配器(适用于多继承语言)

1.继承需要适配的类以及适配器接口的类。

2.编写适配函数

适配器模式的优点

1.利用适配器类来重用被适配的类,无需修改原来的代码。

2.提高类的重用性和透明性,不需要调用原来的类,我们只需要适配器类。

3.方便扩展,我们可以轻松的修改适配器类

对象适配器模式还具有如下优点:
一个对象适配器可以把多个不同的适配者适配到同一个目标,也就是说,同一个适配器可以把适配者类和它的子类都适配到目标接口。
类适配器模式还具有如下优点:
由于适配器类是适配者类的子类,因此可以在适配器类中置换一些适配者的方法,使得适配器的灵活性更强。

适配器模式的缺点

类适配器缺点

1.不利于单继承语言使用。

2.多重继承比较复杂。

对象适配器缺点

1.当被适配者加入新的行为,可能需要修改代码。

2.置换适配方法也比较复杂。

打赏