zoukankan      html  css  js  c++  java
  • 适配器模式

    /**
     * 适配器模式:通过一个类(适配器 adapter)来把2个不同的类或者接口的功能组装在一起;
     * 模式例子:有个Mp4类,里面有个听音乐的方法,还有一个TV类,里面有个看电视的方法,那么如果让MP4类继承TV类是可以实现相应的效果(或者使用组合模式,TV作为MP4的属性),但他们没有业务上的父子关系或者
     * 这2个类是别人写的,你没法改动别人的代码,那么现在想要同时具有2个类的功能,只能用适配器模式了.本质是继承+组合方式
     *
     *
     */
    
    
    
    public class Mp4 {
    
        public void listenMusic(){
            System.out.println("听音乐");
        }
    }
    
    public class TV {
    
        public void watchTv(){
            System.out.println("看电视");
        }
    }
    //创建一个电脑类,让其同时具有听音乐和看电影的功能,那么就可以继承其中一个类,另一个类作为属性,使用组合的方式引入.这里TV是源(source),mp4是目标(被适配者),ComputerAdapter是适配器
    public class ComputerAdapter extends TV {
        private Mp4 mp4;
    
        public ComputerAdapter(Mp4 mp4) {
            this.mp4 = mp4;
        }
    
        public void listenMusiAndWatchTv(){
            this.watchTv();//看视频
            mp4.listenMusic();//听音乐
        }
    }
    public class Test {
        public static void main(String[] args) {
            ComputerAdapter computerAdapter = new ComputerAdapter(new Mp4());
            computerAdapter.listenMusiAndWatchTv();
    
    
        }
    
    }
  • 相关阅读:
    还能这样偷懒?用Python实现网站自动签到脚本
    普通爬虫 VS 多线程爬虫!Python爬虫运行时间对比
    中文文献阅读方法及笔记模板
    约束
    可迭代对象补充
    练习题及补充
    内置函数的补充/super/异常值处理
    特殊成员
    嵌套
    面向对象知识点总结补充
  • 原文地址:https://www.cnblogs.com/yangxiaohui227/p/10911748.html
Copyright © 2011-2022 走看看