设计模式之适配器模式

适配器模式将一个类的接口,转换为客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。

假设有两个接口,我们想让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();
  }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容