• 设计模式 — 结构型模式 适配器模式


    Adapter 适配器

    已有接口A和B,在不修改A、B的情况下,A要为B所用,这个时候需要一个中间人来承担将A的接口封装成为B可以使用的接口,这里的“中间人”就是适配器——adapter

    目的

    转换接口

    优点

    • 无需改动现有代码
    • 便于在原有系统上进行扩展

    实例

    CoyoteAdapter

    CoyoteAdapter将tomcat 的connector和container进行解耦,connector和container本身属于不同的组件,使用adapter可以方便的更换container而不影响connector

    实现方式

    • 组合:在单继承语言中使用
    • 继承:在多继承的语言里面就可以实现

    UML图

    adapter图

    代码实现

    package org.lep.test.adapter;
    
    /**
     * Created by lack on 17-1-3.
     */
    public interface Target {
        public void service();
    }
    
    package org.lep.test.adapter;
    
    /**
     * Created by lack on 17-1-3.
     */
    public class Adapter implements Target {
        private Adaptee adaptee;
    
        public Adapter(Adaptee adaptee){
            this.adaptee = adaptee;
        }
    
        @Override
        public void service() {
            adaptee.serve();
        }
    }
    
    package org.lep.test.adapter;
    
    /**
     * Created by lack on 17-1-3.
     */
    public class Adaptee {
        public void serve(){
            System.out.println("adaptee`s serve....");
        }
    }
    
    package org.lep.test.adapter;
    
    /**
     * Created by lack on 17-1-3.
     */
    public class Test {
        public static void main(String[] args) {
            Adaptee adaptee = new Adaptee();
            Target adapter = new Adapter(adaptee);
    
            adapter.service();
    
        }
    }
    
  • 相关阅读:
    HDU 4296 Buildings(贪心)
    HDU 4288 Coder(线段树)
    hdu 5073 Galaxy
    ZOJ 3905 Cake(贪心+dp)
    ZOJ 3903 Ant(公式推导)
    除法求逆元(扩展欧几里德和费马小定理)
    HDU 4442 Physical Examination(关于贪心排序)
    ACM vim配置
    2015 南阳ccpc The Battle of Chibi (uestc 1217)
    次小生成树(入门)
  • 原文地址:https://www.cnblogs.com/sunshine-2015/p/6250582.html
Copyright © 2020-2023  润新知