百摩网
当前位置: 首页 生活百科

适配器模式遵循什么设计模式(一篇文章搞懂程序设计模式中的适配器模式)

时间:2023-05-26 作者: 小编 阅读量: 3 栏目名: 生活百科

显然,这一角色不可以是接口,而必须是具体类。为使客户端Client能够使用Adaptee类,提供一个中间环节,即类Adapter,把Adaptee的API与Target类的API衔接起来。Adapter与Adaptee是委派关系,这决定了适配器模式是对象适配器。所以适配器模式不适合在详细设计阶段使用它,它是一种补偿模式,专用来在系统后期扩展、修改时所用。

适配器模式遵循什么设计模式?适配器模式: 将一个类的接口转换成客户希望的另外一个接口Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作(选自: 《大话设计模式》),今天小编就来聊一聊关于适配器模式遵循什么设计模式?接下来我们就一起去研究一下吧!

适配器模式遵循什么设计模式

相关概念:

适配器模式: 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作(选自: 《大话设计模式》)

适配器就是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配,简单点理解就是平常所见的转接头,转换器之类的存在。(选自:Java设计模式之《适配器模式》及应用场景)

适配器的主要作用是在新接口和老接口之间进行适配

应用场景:

①想使用一个已存在的类,但是该类不符合接口需求;

②需要创建一个可重用的类,适配没有提供合适接口的其他类。

③如果一个类要实现一个具有很多抽象方法的接口,但是本身只需要实现接口中的部分方法便可以达成目的,所以此时就需要一个中间的过渡类,但此过渡类又不希望直接使用,所以将此类定义为抽象类最为合适,再让以后的子类直接继承该抽象类便可选择性的覆写所需要的方法,而此抽象类便是适配器类(不想实现接口中的所有方法)

适配器模式分类

模式所涉及的角色有:

目标(Target)角色:这就是所期待得到的接口。注意:由于这里讨论的是类适配器模式,因此目标不可以是类。

源(Adapee)角色:现在需要适配的接口。

适配器(Adaper)角色:适配器类是本模式的核心。适配器把源接口转换成目标接口。显然,这一角色不可以是接口,而必须是具体类。

①类适配器模式:

解释: 在上图中可以看出,Adaptee类并没有Request()方法,而客户端Client则期待这个方法。为使客户端Client能够使用Adaptee类,提供一个中间环节,即类Adapter,把Adaptee的API与Target类的API衔接起来。AdapterAdaptee是继承关系,这决定了这个适配器模式是类适配器。

代码:

客户端期待调用的接口

需要适配的方法

通过继承待适配的类Adaptee,同时实现Target接口来重写request()

创建一个适配器,调用适配器的request方法,实际最后调用的是specificRequest()

①对象适配器模式:

解释:从上图可以看出,Adaptee类并没有Request()方法,而客户端则期待这个方法。为使客户端能够使用Adaptee类,需要提供一个包装(Wrapper)类Adapter。这个包装类包装了一个Adaptee的实例,从而此包装类能够把Adaptee的API与Target类的API衔接起来。Adapter与Adaptee是委派关系,这决定了适配器模式是对象适配器。

代码:

客户端期待调用的接口

需要适配的方法

适配器类,通过包装了一个Adaptee实例来调用specificRequest()

创建一个适配器,并传入一个需要适配的类的实例,然后调用适配器重写的方法request()

总结:

区别:对象的适配器模式不是使用继承关系连接到Adaptee类,而是使用委派关系连接到Adaptee类。

优点:

复用性:系统需要使用现有的类,而此类的接口不符合系统的需要。那么通过适配器模式就可以让这些功能得到更好的复用

扩展性:在实现适配器功能的时候,可以自由调用自己开发的功能,从而自然地扩展系统的功能。

缺点:

过多的使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是A接口,其实内部被适配成了B接口的实现。所以适配器模式不适合在详细设计阶段使用它,它是一种补偿模式,专用来在系统后期扩展、修改时所用。

适用场景:

1、已经存在的类的接口不符合我们的需求;

2、创建一个可以复用的类,使得该类可以与其他不相关的类或不可预见的类协同工作;

3、使用一些已经存在的子类而不需要对其进行子类化来匹配接口。

4、旧的系统开发的类已经实现了一些功能,但是客户端却只能以另外接口的形式访问,但我们不希望手动更改原有类的时候。

注意:

适配器模式不适合在详细设计阶段使用它,它是一种补偿模式,专用来在系统后期扩展、修改时所用,适配器模式更像是一种补救措施

参考文献:《大话设计模式》 《Java知音》 博客园文章:《设计模式:适配器模式》《JAVA与模式》之适配器模式

    推荐阅读
  • 蘑菇有哪些营养价值(4种常见蘑菇各有哪些营养价值)

    中医认为双孢菇味甘性平有提神消化、降血压的作用。经常食用双孢菇,可以防止坏血病,预防肿癌,促进伤口愈合和解除铅,砷,汞等的中毒,兼有补脾,润肺,理气,化痰之功效,能防止恶性贫血,改善神经功能,降低血脂。能提高人体免疫功能,可延缓衰老。草菇的维生素C含量高,能促进人体新陈代谢,提高机体免疫力。金针菇能有效地增强机体的生物活性,促进体内新陈代谢,对生长发育也大有益处。

  • 很甜的古言甜宠文推荐(几部一见钟情系列的古言宠文)

    少年夫妻,携手白头。于是,祁王从此多了一个童养媳,一个娇娇弱弱需要宠上天的小媳妇儿。顾慈吓坏了,听信谗言,抗旨改嫁承恩侯。她死后亲眼看见夫君在自己灵前,与表妹寻欢作乐;也亲眼瞧见戚北落提剑帮她报仇,抱着她的牌位,哭了整整三日。重新来过,顾慈迫不及待跑去东宫。标准甜宠文,从头宠甜到尾。

  • 面粉里面的黑虫叫什么 面粉里面的黑虫叫什么虫子

    面粉虫对人体有害吗有害。如天气不好的情况下,可用孔度较密实的筛网,筛选出虫子。

  • 滴胶怎么做(下面是制作滴胶的步骤)

    滴胶怎么做第一步:需要准备两个耳饰模具,大小由自己决定,注意做耳饰的一端要有一个细细的小圆柱,便于后期留耳孔。第六步:放好干花之后,再倒入剩下的滴胶,最终厚度由你自己决定,倒好之后,盖上盖子,防止灰尘掉落,静置12-24小时,直至滴胶完全凝固。

  • 手绘如何快速画产品(教你如何做出高画分辨率)

    教你如何做出高画分辨率前言做了有一段时间的视频,虽然“战绩”并不耀眼……但没有功劳也有苦劳的我,也是在不断地创作中积累了许多视频制作相关的经验;想做出赏心悦目的优秀视频,其中分辨率尤为重要,这里就谈谈关于高分辨率的游戏视频。

  • 交通事故现场处理流程怎么走 交警现场处理事故流程

    值班民警接到122指令后,会立即赶赴现场处理。公安机关在接到伤残评定申请书后,30日内评定伤残等级。双方同意达成协议,由事故调解人员制作并发给损害赔偿调解书。当事人应当在提出请求后十日内向公安机关交通管理部门提供交通事故证据。

  • 怎么样领取失业保险金(如何申领失业保险金)

    宁德网消息,下面我们就来聊聊关于怎么样领取失业保险金?满足以上条件者可到失业保险参保地的失业保险服务窗口申领失业保险待遇支付。值得一提的是,失业人员在领取失业保险金期间,按照规定同时享受其他失业保险待遇。

  • 电脑为什么下载不了游戏(什么原因会导致电脑不能下载游戏)

    电脑不能支持电脑硬盘分区空间不够,我来为大家讲解一下关于电脑为什么下载不了游戏?跟着小编一起来看一看吧!电脑硬盘分区空间不够。盗版游戏没有正确的解压密码解压不了,所以无法安装。电脑配置较差,无法玩,连安装都是不可能的,低于游戏所要求的最低配置要求了。

  • 长安cs75排气管消声器出水正常吗 长安cs75plus排气管滴水

    尾气管中有三元催化剂。它的主要功能是催化有毒气体生成水。夏天温度较高,水分蒸发较多,冬天蒸汽冷却成水。消声器内长期进水会导致消声器生锈。汽油燃烧后,会产生水、二氧化碳等。排气管滴水的原因是汽车汽油完全燃烧后产生二氧化碳和水,高温下的水变成水蒸气,高温下无色透明。然而,当水温低于100度时,水蒸气会凝结成水。然而,当环境温度高时,水蒸气已经排出而没有冷凝。这种现象在大多数汽车中是很正常的。

  • 腹胀排气特效穴位(可以试试这几个穴位)

    下脘于腹部,距离脾胃很近中医有个选穴原则,叫“临近选章门穴”,意思在病患部位的周围和附近选穴,今天小编就来聊一聊关于腹胀排气特效穴位?中医有个选穴原则,叫“临近选章门穴”,意思在病患部位的周围和附近选穴。按压6秒钟将手离开一次,重复10次,可促进胃酸分泌还能止疼。四缝是四个穴位的合称,经外奇穴。中脘位于胸骨下端和肚脐连线的二分之一处,是治疗胃肠疾病中十分重要的穴位。