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

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

时间: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与模式》之适配器模式

    推荐阅读
  • 解析:过敏性鼻炎能根治吗 过敏性鼻炎可不可以根治

    过敏性鼻炎目前医学上尚无特定的可以彻底治愈的方法,只能控制病情,而无法根治,这点患有过敏性鼻炎的必须认识清楚。治疗方法治疗与生活防护目前的治疗方式主要是药物疗法,脱敏治疗。生活中注意加强身体素质,查清楚过敏原,尽量避免接触过敏原。虽然没有根治的明确方法,但是也不应灰心,通过加强体质和对过敏原的避免,及时控制病情,也有患者几乎没有复发的案例。

  • 电脑着火用什么灭火器(灭火器灭火原来)

    干粉灭火器内部装有磷酸铵盐等干粉灭火剂,这种干粉灭火剂具有易流动性、干燥性,由无机盐和粉碎干燥的添加剂组成,可有效扑救初起火灾。靠干粉中的无机盐的挥发性分解物,与燃烧过程中燃料所产生的自由基或活性基团发生化学抑制和负催化作用,使燃烧的链反应中断而灭火。靠干粉的粉末落在可燃物表面外,发生化学反应,并在高温作用下形成一层玻璃状覆盖层,从而隔绝氧,进而窒息灭火。另外,还有部分稀释氧和冷却作用。

  • 河南十大公办专科院校(河南省周口市的三所高等院校)

    在河南有个市叫周口市,周口市拥有三所普通高等院校,今天就为大家介绍下这三所高校。近年来周口师范学院的发展也是稳步前进,与郑州大学合作开展研究生教育。是周口市两所本科高校之一。周口市的高等教育也在稳步发展,近日有消息称在周口幼儿师范学校的基础上筹建周口艺术职业学院,这也意味着周口市的高等教育再上新的台阶。

  • 南阳卧龙岗文化园有什么景点 卧龙岗文化园门票

    后额“南阳诸葛庐”为清光绪二十年南阳知府傅凤飓所书。后人因此建亭,并以“古柏”命名。门楣横额“古柏亭”为清咸丰四年秋月,南阳知县钮雷所书。伴月台下有一砖券小门,内有一道弯曲的长洞、传说此洞常有巨龙出现而得名。门额“野云庵”及两侧楹联亦系青砖雕成。井口为青石凿成,传为诸葛亮“躬耕”时汲水之处。为一纪念性处所,后湮。

  • 如何买保险(买保险的方法)

    下面希望有你要的答案,我们一起来看看吧!如何买保险提前了解保险,如有意购买,预约好保险代理人在保险公司签约;与保险代理人会面,代理人会再次解释产品内容,确认无误后,即进入保险公司的验证程序;由保险代理人引导签署保险文件,签署无误后,随机在保险公司的交费处完成缴费,之后整个投保过程就完成了。

  • 长寿菜是什么菜做的(关于长寿菜的介绍)

    长寿菜是什么菜做的长寿菜,又名叶用甘薯,俗称白薯叶、番薯叶、地瓜叶,四川称之为苕尖,是甘薯的叶、叶柄和芽梢部,学名Ipomoeabatatas(L.)Lam.,为旋花科牵牛花属草本匍匐性蔓生植物。在热带为多年生。原产于热带美洲。现广泛栽培于全世界热带和亚热带地区。近年发现,薯叶中含丰富的营养物质,是维生素历、矿物质钾、钙之来源,而且其病虫害甚少,很少使用农药,比其他叶菜类较抗暴风雨,生长迅速,为良好的夏季叶菜。

  • 腾讯视频如何取消连续包月(腾讯视频如何取消连续包月服务)

    腾讯视频取消连续包月的方法如下:第一步,打开腾讯视频app,点击右下角个人中心;第二步,点击我的VIP会员;第三步,点击管理自动续费;第四步,点击管理自动续费后,进入页面,拉到最底部,点击联系客服;第五步,进入后,选择与关闭自动续费相关的入口;第六步,进入后,有许多蓝色重点突出字体,选择与你情况相符的入口操作即可。

  • 上海迪士尼附近还有什么好玩的地方(上海迪士尼附近好玩的地方)

    上海迪士尼附近还有什么好玩的地方杭州--西湖,现今《世界遗产名录》中少数几个和中国唯一一个湖泊类文化遗产。扬州--扬州瘦西湖,被“中国国家地理杂志”评选为江南代表园林之一。无锡--灵山大佛,太湖边气势恢宏、美轮美奂、佛教建筑群,被誉为佛教艺术的“罗浮宫”。无锡灵山大佛,2016年,一年一度的灵山浴佛节将于5月7日至31日在中国无锡灵山隆重举行。

  • 形容春节的诗句(描写春节的高级诗句)

    十年旧梦无寻处,几度新春不在家____吴文英《思佳客·癸卯除夜》,接下来我们就来聊聊关于形容春节的诗句?____吴文英《思佳客·癸卯除夜》半盏屠苏犹未举,灯前小草写桃符。____陆游《除夜雪》万物迎春送残腊,一年结局在今宵。____戴复古《除夜》明年岂无年,心事恐蹉跎。____陆游《除夜雪》命随年欲尽,身与世俱忘;____文天祥《除夜》衣懒换,酒难赊。____吴文英《思佳客·癸卯除夜》昨夜斗回北,今朝岁起东。

  • 我的世界基岩版1.19更新介绍(基岩版1.2.11发布)

    我的世界Minecraft基岩版1.2.11发布,这次1.2.11版本修复了大量BUG,对游戏里一些内容作出调整,我的世界1.2.11版本最新内容抢先看,感兴趣的小伙伴一起来了解一下吧!