前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式----适配器模式

设计模式----适配器模式

作者头像
SuperHeroes
发布2018-05-30 17:08:21
4060
发布2018-05-30 17:08:21
举报
文章被收录于专栏:云霄雨霁云霄雨霁

适配器模式:

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

适配器模式的结构:

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

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

示例代码:

目标接口:

代码语言:javascript
复制
public interface Target {
    public void request();
}

被适配的对象:

代码语言:javascript
复制
public class Adaptee {
    public void specificRequest(){
        //业务代码
    }
}

适配器类:

代码语言:javascript
复制
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无法实现类适配器因为类适配器需要多继承。

  • 当需要使用一个现有的类而其接口不符合你的需要时,就使用适配器。
  • 适配器将一个对象包装起来以改变其接口;装饰器将一个对象包装起来以增加新的行为和责任;而外观将一群对象“包装”起来以简化其接口。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.11.06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档