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

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

hot3.png

适配器模式:

将一个类的接口,转化成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。

适配器模式的结构:

适配器模式一般有三个部分:目标类/接口、被适配的对象、适配器类。

  • 目标类/接口:我们想要使用的接口。
  • 被适配的对象:已经存在的对象。这个对象和目标接口不兼容,但我们想能够想调用目标接口那样调用这个对象。
  • 适配器类:实现该类,来让原本接口不相容的类可以兼容。它要继承/实现目标类/接口,并且应该持有一个被适配对象的句柄。

示例代码:

目标接口:

public interface Target {    public void request();}

被适配的对象:

public class Adaptee {    public void specificRequest(){        //业务代码    }}

适配器类:

public class Adapter implements Target{    //持有需要被适配的接口对象    private Adaptee adaptee;    //构造器    public Adapter(Adaptee adaptee){        this.adaptee = adaptee;    }    //实现接口方法,它调用被适配对象的方法    public void request() {        adaptee.specificRequest();    } }

像上面这样,Adaptee类就可以适配成Target接口,在需要Target接口的地方可以使用Adater(被适配的Adaptee)。

适配器可以有类适配器和对象适配器两种实现。但Java无法实现类适配器因为类适配器需要多继承。

  • 当需要使用一个现有的类而其接口不符合你的需要时,就使用适配器。
  • 适配器将一个对象包装起来以改变其接口;装饰器将一个对象包装起来以增加新的行为和责任;而外观将一群对象“包装”起来以简化其接口。

转载于:https://my.oschina.net/HuoQibin/blog/1563439

你可能感兴趣的文章
nginx 配置的server_name参数(转)
查看>>
Uva592 Island of Logic
查看>>
vue静态文件处理
查看>>
maven 错误:读取 xxx.jar 时出错;invalid LOC header (bad signature) 1 错误
查看>>
C++基础代码--20余种数据结构和算法的实现
查看>>
footer固定在页面底部的实现方法总结
查看>>
ant design pro (十六)advanced 权限管理
查看>>
git报错:Pull is not possible because you have unmerged files解决方法
查看>>
nginx上传文件大小
查看>>
React Native填坑之旅 -- 回归小插曲
查看>>
数字通信原理笔记(一)---概述
查看>>
Drectx 3D窗口后台截图
查看>>
HDU 2243 考研路茫茫——单词情结(自动机)
查看>>
nonatomic,assign,copy,retain的区别
查看>>
hbase.client.keyvalue.maxsize的默认值
查看>>
flask使用debug模式时,存在错误时,会占用设备内存直至服务重启才释放;debug模式会开启一个守护进程(daemon process)...
查看>>
Java关键字(四)——final
查看>>
分析轮子(二)- << ,>>,>> (左移、右移、无符号右移)
查看>>
MySql 5.7 新特性概览
查看>>
Dubbo OPS工具——dubbo-admin & dubbo-monitor
查看>>