3.总的来说,提高了效率,降低了成本。
什么时候使用适配器模式?
1.每一种设计模式都有它最适用的场合。适配器模式在以下场合下最适用:
2.使用一个已经存在的类,如果它的接口和你实际要求的不一致时,可以考虑使用适配器模式;
要在调用者和功能提供者双方都不太容易修改的时候再使用适配器模式,而不是一有不同时就使用它。
UML类图
上图是适配器模式的第一种实现形式,适配器Adapter继承自Target和Adaptee类,Adapter类需要重写Target类的Request函数,在Request中做适当的处理,调用Adaptee类的SepcificRequest。最终,Target实际调用的是Adaptee的SpecificRequest来完成Request的,完成适配;这种叫做类适配器。
上图是适配器的第二种实现形式,适配器Adapter类继承自Target类,同时,在Adapter类中有一个Adaptee类型的成员变量;Adapter类重写Request函数时,在Request中,使用Adaptee类型的成员变量调用Adaptee的SpecificRequest函数,最终完成适配;这种叫做对象适配器。
类适配器和对象适配器的比较
既然有了类适配器和对象适配器,那么在实际中如何在二者之间做选择呢?
类适配器有以下特点:
1.由于Adapter直接继承自Adaptee类,所以,在Adapter类中可以对Adaptee类的方法进行重定义;
2.如果在Adaptee中添加了一个抽象方法,那么Adapter也要进行相应的改动,这样就带来高耦合;
3.如果Adaptee还有其它子类,而在Adapter中想调用Adaptee其它子类的方法时,使用类适配器是无法做到的。
对象适配器有以下特点:
1.有的时候,你会发现,不是很容易去构造一个Adaptee类型的对象;












