zoukankan      html  css  js  c++  java
  • 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();
    }

     ---

  • 相关阅读:
    Python笔记 #17# Pandas: Merge
    MVC相关资料收集
    Python笔记 #16# Pandas: Operations
    Least slack time scheduling
    Python笔记 #15# Pandas: Missing Data
    Python笔记 #14# Pandas: Selection
    C++中const引用的是对象的时候只能调用该对象的f()const方法
    模板与泛型编程
    c++中的单例模式
    C/C++异常处理机制
  • 原文地址:https://www.cnblogs.com/xy-ouyang/p/11486864.html
Copyright © 2011-2022 走看看