适配器模式

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

类图

示例

//用户的目标接口
public interface Duck {
    void quack();
}

//被适配者
public class Chicken  {
    public void crow(){
        System.out.println("公鸡打鸣!");
    }
}

//适配器
public class ChickenAdapter implements Duck{
    Chicken chicken;
    public ChickenAdapter (Chicken chicken){
        this.chicken = chicken;
    }
    @Override
    public void quack() {
        chicken.crow();
    }
}

//客户端
public class Client {
    //通过鸭子接口让鸡打鸣
    public static void main(String[] args){
        Duck chickenAdapter = new ChickenAdapter(new Chicken());
        chickenAdapter.quack();
    }
}

运行结果

 

优点:把两个不相关的类一起运行,提高类的复用。

缺点:调用接口A,获得的是B的实现,过多的使用会造成系统混乱,难以掌控。

使用场景:适用于使用正在运行中的系统的接口,而非在设计初期使用。

posted @ 2020-02-24 21:12  Camcay  阅读(100)  评论(0)    收藏  举报