首页 > 其他 > 详细

设计模式8-适配器模式

时间:2019-04-17 17:01:22      阅读:126      评论:0      收藏:0      [点我收藏+]
package DesignPattern;

public class AdapterPattern {
    //对象适配器模式
    //要点:在所需目标类的接口下,包装所需适配类的接口,以便在目标接口处使用

    public interface Duck{
        void quack();
        void fly();
    }
    public static class MallardDuck implements Duck{
        @Override
        public void quack() {
            System.out.println("Quack");
        }

        @Override
        public void fly() {
            System.out.println("I'm flying");
        }
    }

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

    public static 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");
        }
    }

    public static class TurkeyAdapter implements Duck{
        Turkey turkey;
        TurkeyAdapter(Turkey turkey){
            this.turkey=turkey;
        }
        @Override
        public void quack() {
            turkey.gobble();
        }

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

    public static void main(String[] args) {
        MallardDuck duck = new MallardDuck();
        WildTurkey turkey = new WildTurkey();
        Duck turkeyAdapter = new TurkeyAdapter(turkey);
        System.out.println("turkey says");
        turkey.gobble();
        turkey.fly();
        System.out.println("\nThe Duck says");
        duck.quack();
        duck.fly();
        System.out.println("\nThe TurkeyAdapter");
        turkeyAdapter.quack();
        turkeyAdapter.fly();
    }
}

设计模式8-适配器模式

原文:https://www.cnblogs.com/zhouyu0-0/p/10724390.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!