博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式 — 结构型模式 适配器模式
阅读量:7096 次
发布时间:2019-06-28

本文共 1162 字,大约阅读时间需要 3 分钟。

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();    }}

转载于:https://www.cnblogs.com/sunshine-2015/p/6250582.html

你可能感兴趣的文章
Android上的蓝牙通信功能的开发:BluetoothChat例程分析
查看>>
POJ 2244
查看>>
IOS各种文件描述
查看>>
Eclipse快捷键大全(转载)
查看>>
Yahoo!网站性能最佳体验的34条黄金守则——图片、Coockie与移动应用
查看>>
微博采撷(一)
查看>>
【CLR的执行模型:加载公共语言运行库(3)】
查看>>
java多线程总结(转)
查看>>
Android fill_parent、wrap_content和match_parent的区别
查看>>
【协议篇】TCP
查看>>
MySql表操作常用语法
查看>>
中国用户通过rchange用银联充值到PerfectMoney再给BTC-E充值进行搬砖的方法
查看>>
DBCC--CHECKDB
查看>>
判断一个坐标点是否在不规则多边形内部的算法
查看>>
10个优秀的 HTML5 & CSS3 下拉菜单制作教程
查看>>
【转】【Asp.Net】Asp.net发送邮件的两种方法小结
查看>>
ACM进阶计划
查看>>
GitHub
查看>>
嘿嘿,今天学习啦数据检索啦
查看>>
linux网络相关配置文件
查看>>