设计模式学习专栏六--------适配器模式

2019-03-11  本文已影响0人  你的头发真的好长

设计模式学习专栏六--------适配器模式

场景


如何让火鸡Turckey冒充鸭子Duck

鸭子接口

public interface Duck {
    public void quack();
    public void fly();
}

鸭子的实现类--绿头鸭

public class MallardDuck implements Duck {
    public void quack() {
        System.out.println("Quack");
    }
 
    public void fly() {
        System.out.println("I'm flying");
    }
}

火鸡接口

public interface Turkey {
    public void gobble();
    public void fly();
}

火鸡的实现类--野生火鸡

public class WildTurkey implements Turkey {
    public void gobble() {
        System.out.println("Gobble gobble");
    }
 
    public void fly() {
        System.out.println("I'm flying a short distance");
    }
}

如何实现

现在,我们缺少鸭子对象,需要用一些火鸡来冒充鸭子,显而易见,因为火鸡的接口不同,所以不能公然拿来使用

客户使用适配器的过程

客户和被适配者是解耦的, 它们互相不知道对方的存在

适配器模式总览


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

image

参考

​ 书籍: HeadFirst设计模式

​ 代码参考地址: 我就是那个地址

上一篇 下一篇

猜你喜欢

热点阅读