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();
    
        }
    }
    
  • 相关阅读:
    lombok的介绍及使用
    java后端导入excel将数据写入数据库
    java后端导出excel表格
    eclipse maven打war包
    java后端树形菜单使用递归方法
    mybatis一对多查询
    @transactional作用和事务
    zookeeper安装
    Solr单机版安装
    jstat 简介(2)
  • 原文地址:https://www.cnblogs.com/sunshine-2015/p/6250582.html
Copyright © 2011-2022 走看看