• 适配器模式


    适配器模式使用场景

    例如:用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得笔记本电脑无法使用。这时候一个三相到两相的转换器(适配器)就能解决此问题

    类适配器模式

    public interface Target {
        /**
         * 这是源类Adaptee也有的方法
         */
        public void sampleOperation1(); 
        /**
         * 这是源类Adapteee没有的方法
         */
        public void sampleOperation2(); 
    }
    public class Adaptee {
        public void sampleOperation1(){}
    }


    public class Adapter extends Adaptee implements Target {
        /**
         * 由于源类Adaptee没有方法sampleOperation2()
         * 因此适配器补充上这个方法
         */
        @Override
        public void sampleOperation2() {
            //写相关的代码
        }
    
    }

    对象适配器模式
    public interface Target {
        /**
         * 这是源类Adaptee也有的方法
         */
        public void sampleOperation1(); 
        /**
         * 这是源类Adapteee没有的方法
         */
        public void sampleOperation2(); 
    }
    public class Adaptee {
    
        public void sampleOperation1(){}
        
    }

    public class Adapter {
        private Adaptee adaptee;
        
        public Adapter(Adaptee adaptee){
            this.adaptee = adaptee;
        }
        /**
         * 源类Adaptee有方法sampleOperation1
         * 因此适配器类直接委派即可
         */
        public void sampleOperation1(){
            this.adaptee.sampleOperation1();
        }
        /**
         * 源类Adaptee没有方法sampleOperation2
         * 因此由适配器类需要补充此方法
         */
        public void sampleOperation2(){
            //写相关的代码
        }
    }

    总结:适配器拥有被适配对象(插座)缺失方法。
  • 相关阅读:
    myeclipse安装
    win下Velocity安装和试用
    win下Java环境安装
    零基础编程指南(By Turtle)
    快速将某个文件夹下的所有文件中的匹配数据替换
    补丁数组(增删改查都较快的数组)
    addView的误区
    NOIP普及组:买铅笔
    由抽奖软件想到的随机算法总结
    Codeforces Round #220 (Div. 2) 解题报告
  • 原文地址:https://www.cnblogs.com/chenweichu/p/5601894.html
Copyright © 2020-2023  润新知