适配器模式将一个类的接口,转换为客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。
假设有两个接口,我们想让A接口像B接口一样工作。
我们实现一个适配器类,这个类实现B接口,持有A类型的对象。在其接口方法实现中调用A类对象的方法,这就实现了我们的目的。
JDK:
- java.util.Arrays#asList()
- java.util.Collections#list()
例子:
//鸭子接口
public interface Duck {
void quack();
}
//火鸡接口
public interface Turkey {
void gobble();
}
//野火鸡实现
public class WildTurkey implements Turkey {
@Override
public void gobble() {
System.out.println("gobbel!");
}
}
//适配器,让火鸡像鸭子一样工作
public class TurkeryAdapter implements Duck {
Turkey turkey;
public TurkeyAdapter(Turkey turkey) {
this.turkey = turkey;
}
@Override
public void quack() {
turkey.gobble();
}
}
//测试使用
public class Client {
public static void main(String[] args) {
Turkey turkey = new WildTurkey();
Duck duck = new TurkeyAdapter(turkey);
duck.quack();
}
}
网友评论