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

    适配器模式使用场景

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

    类适配器模式

    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(){
            //写相关的代码
        }
    }

    总结:适配器拥有被适配对象(插座)缺失方法。
  • 相关阅读:
    墨西哥选美皇后涉毒被捕 丢失桂冠
    html中的超连接和鼠标事件
    用SSL安全协议实现WEB服务器的安全性
    PHP中的一些经验积累 一些小巧实用的函数
    博客特效之背景动画雨滴(转帖)
    smarty中section的使用
    程序员语录
    css常用属性
    10年软件开发教会我最重要的10件事[转]
    WP7中对ListBox的ItemTemplate中子元素的后台操作
  • 原文地址:https://www.cnblogs.com/chenweichu/p/5601894.html
Copyright © 2011-2022 走看看