2020-09-21
- 模式定义:将一个类的接口转换为客户程序希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作。
- 适用环境:希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。在遗留代码复用、类库迁移等方面非常有用。
- 实现结构:对象适配器和类适配器(采用多继承实现,一般不推荐使用)。
案例
#
//老接口
interface OldTarget{
public int bar();
public void foo(int data);
}
//一个实现了老接口的类
class OldClass implements OldTarget{
public int bar(){
//...
}
public void foo(int data){
//...
}
}
//新接口
interface NewTarget{
public void process();
}
//对象适配器
class Adapter implements NewTarget{
private OldTarget oldTarget;
public Adapter(OldTarget oldTarget){this.oldTarget=oldTarget;}
public void process(){
int tmp=bar;
foo(tmp);
}
}
public static void main(String[] args){
OldTarget ot=new OldClass();
//通过该适配器就将一个旧的接口转换成了一个新的接口
NewTarget nt=new Adapter(ot);
nt.process();
}