设计模式之适配器模式

一、适配器模式介绍
适配器模式:将一个类的接口,转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。
适配器模式有着良好的OO设计原则,使用对象组合,以修改的接口包装被适配者,此外这样的做法还有额外的有点,被适配者的任何子类,都可以搭配适配器使用。

 

二、适配器模式类图

 适配器模式分为两种:对象适配器和“类”适配器
(1)类适配器不是使用组合来适配被适配者,而是继承被适配者和目标类
(2)对象适配器是使用组合来适配被适配者的。

对象适配器类图如下:

 

 

 类适配器类图如下:

 

三、问题

对象适配器和类适配器使用两种不同的适配方法,这两种实现的差异如何影响适配器的弹性?
(1)对象适配器因为使用的是组合,所以该方式不仅可以适配某个类,也可以适配该类的任何子类,需要重新实现适配类的所有方法。
类适配器采用的是继承方式,能适配某个特定的被适配的类,且不需要重写适配整个被适配者的方法;
(2)对象适配器需要一个适配类和一个被适配的类;而类适配器则不需要被适配的类,仅仅一个适配器类即可。
(3)如果被适配者加入了新的行为,对象适配器的适配类则需要做相应的改动,而类适配器则不需要。

 

四、总结

1) 当需要使用一个现有的类而其接口并不符合你的需要时,就使用适配器
2) 适配器改变接口以符合客户的期望
3) 实现一个适配器可能需要一番功夫,也可能不费功夫,视目标接口的大小与复杂而定
4) 适配器模式有两种形式:类适配器和对象适配器,类适配器需要多重继承
5) 适配器将一个对象包装起来以改变其接口;装饰者将一个对象包装起来以增加新的行为和责任;

posted @ 2020-01-10 17:20  深蓝---Jack  阅读(522)  评论(0编辑  收藏  举报