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();
    
    
        }
    
    }
  • 相关阅读:
    Numpy库
    使用Python的pandas-datareader包下载雅虎财经股价数据
    python引用库异常总结
    桌面常用快捷键
    第四章 数据的概括性度量
    第三章 数据的图表展示
    python连接MySql数据库
    如何利用scrapy新建爬虫项目
    幼儿教育
    PyMySQL和MySQLdb的区别
  • 原文地址:https://www.cnblogs.com/yangxiaohui227/p/10911748.html
Copyright © 2011-2022 走看看