木心

毕竟几人真得鹿,不知终日梦为鱼

导航

head first 设计模式笔记7-适配器模式与外观模式

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

  这个模式可以通过创建适配器进行接口转换,让不兼容的接口变成兼容。这可以让客户从实现的接口解耦。如果在一段时间之后,我们想要改变接口,适配器可以将改变的部分封装起来,客户不必为了应对不同的接口而每次跟着修改。

 

   Duck

/**
 * @author oy
 * @date 2019年9月8日 下午3:45:05
 * @version 1.0.0
 */
public interface Duck {
    public void quack();
    public void fly();
}

  Turkey

public interface Turkey {
    // 火鸡不会呱呱叫,只会咯咯叫
    public void gobble();
    // 火鸡会飞,只是飞不远
    public void fly();
}

  WildTurkey

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

  TurkeyAdapter

/**
 * 包装一只火鸡,使之看起来像是鸭子
 * @author oy
 * @date 2019年9月8日 下午3:53:40
 * @version 1.0.0
 */
public class TurkeyAdapter implements Duck {
    Turkey turkey;
    
    public TurkeyAdapter(Turkey turkey) {
        this.turkey = turkey;
    }

    @Override
    public void quack() {
        turkey.gobble();
    }

    @Override
    public void fly() {
        turkey.fly();
    }
}

 

   测试:

public static void main(String[] args) {
    TurkeyAdapter trukeyAdapter = new TurkeyAdapter(new WildTurkey());
    trukeyAdapter.quack();
    trukeyAdapter.fly();
}

 ---

posted on 2019-09-08 16:04  wenbin_ouyang  阅读(183)  评论(0编辑  收藏  举报