• 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();
    }

     ---

  • 相关阅读:
    难找的对象
    欺负10086客服小姐(超搞笑)
    左手,请握紧你的右手!
    Discuz! 6.x/7.x EXP
    【超搞视频】  另类乞讨让你笑掉大牙 !
    GNU/Linux平台的C程序开发及程序运行环境
    SICK LMS200激光数据采集程序说明
    郭云深划分武学境界
    Discuz XSS得webshell
    200条装修小常识(结婚,不结婚的都要看一下,很有用的)
  • 原文地址:https://www.cnblogs.com/xy-ouyang/p/11486864.html
Copyright © 2020-2023  润新知