zoukankan      html  css  js  c++  java
  • 设计模式 — 结构型模式 适配器模式

    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();
    
        }
    }
    
  • 相关阅读:
    vsync信号产生与分发
    推荐看过不错的博客及网站
    证明质数有无数个
    242 Valid Anagram
    169 Majority Element
    快速排序--quicksort
    插入排序
    选择排序
    冒泡排序
    指针函数 函数指针 回调函数
  • 原文地址:https://www.cnblogs.com/sunshine-2015/p/6250582.html
Copyright © 2011-2022 走看看