适配器模式
适配器模式
适配器模式属于结构模式中的一种。
适配器模式将一个类扥接口转化为客户希望的接口。适配器让接口彼此不兼容的类能互相协同工作。
适配器模式也经常被称为wrapper
模式。
适配器模式主要含有几个实体:
- Client :
- Target : 客户端需要的类型接口;
- Adapter : 将需要适配的类(Adaptee)转化为客户需要的目标类型(Target);
- Adaptee : 需要被适配的类的类型接口;
通常适配器模式可以采用继承和组合两种方式实现,一种是Adapter实现Target和Adaptee接口,另一种是Adapter实现Target并依赖一个Adaptee实例。
UML类图
- 继承模式
- 组合模式
实例
public interface IAdaptee {
void operation2();
}
public class AdapteeImpl implements IAdaptee {
@Override
public void operation2() {
// TODO Auto-generated method stub
System.out.println("AdapteeImpl is executing operation2()");
}
}
public class Adapter extends AdapteeImpl implements ITarget {
@Override
public void operation1() {
// TODO Auto-generated method stub
operation2();
}
}
public class Client {
//客户端希望的接口类型
interface ITarget {
void operation1();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Client client = new Client();
// client.myFunction(new AdapteeImpl());//现在AdapteeImpl是引用的第三方库,不能修改,但是有想要使用这个类
ITarget adapter = new Adapter();
client.myFunction(adapter);
}
public void myFunction(ITarget obj) {
obj.operation1();
}
}
References
- 《设计模式:可复用面向对象软件的基础》