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

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

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

    推荐阅读
  • 密度体积质量之间的关系 密度体积质量之间的关系表

    密度,体积,质量之间的关系为:一个物体的密度等于它的质量与体积的比值,可以表示为:密度ρ=质量m/体积V。质量指的是物质的量的量度为正标量,常用m表示;密度指的是物质的每单位体积内的质量,常用ρ表示;而体积指的是物质占有多少空间的量,常用V表示。也就是说,当质量m不变,密度ρ与体积V成反比,体积大就密度小,体积小就密度大。

  • 油扣鱼怎么做好吃(油扣鱼怎么腌制)

    油扣鱼怎么做好吃共有4步,可做干煎油扣鱼、香酥油扣鱼、红烧油扣鱼等。2腌油扣鱼加入盐腌制1个小时,然后晾干备用。3煎油扣鱼起锅烧油,加入晾干的油扣鱼,小火煎制。4加入醋煎至油扣鱼两面金黄后,加入适量醋拌匀即可。

  • 2021姜堰溱潼会船节是几号 溱潼会船节2021几天

    “世界上最大的水上庙会”——溱潼会船节2021年4月8日正式开启。他用“汇水会船绘姜堰,氧生养福漾溱湖”描绘现在的姜堰,并真诚邀请各位嘉宾和广大游客,到姜堰观光旅游、观赏会船,共享尘世间美好幸福。图源:姜堰微视听温馨提示:2021年4月8日上午开幕式期间,对活动区域内的部分道路和水面适时实行交通管制和现场管制,所有参加活动的人员、车辆、船只必须服从工作人员的统一指挥,自觉接受管理,维护活动区域秩序。

  • 爱仕达精铸铁锅怎么样(爱仕达铸铁锅的优缺点)

    但MAXCOOK美厨不粘精铁炒锅宣称“少油烟”,检测中却有肉眼可见的油烟。16款样品中,只有苏泊尔好帮手精铸铁锅达到储能要求,水温70.4℃。此外,消费者不必过于担忧涂层铁锅其安全性问题。此外,脱落的涂层物质、涂层脱落后导致锅的基材暴露,可能存在安全风险,因此涂层有损伤时,应注意更换锅具。

  • 嘴巴嘟嘟原唱(你喜欢听吗)

    我们一起去了解并探讨一下这个问题吧!嘴巴嘟嘟原唱《嘴巴嘟嘟》是由余恒锋/王紫作词,余恒锋作曲,刘子璇演唱的一首歌曲。刘子璇,中国内地女歌手、演员,毕业于中央戏剧学院。出演电影《三言两拍》以及《一不留神》等作品。刘子璇的声音好像就有一种与生俱来的魔力,让人听过之后就会不自觉的非常伤心,而这样的声音也将歌曲所要表达给我们的内容表达的十分的到位。

  • 红枣切糕的做法(红枣切糕怎么做)

    接下来我们就一起去研究一下吧!红枣切糕的做法食材:糯米500g、红枣10个。糯米和红枣提前一天晚上用水泡上。第二天早上就可以做了,将糯米控水,红枣去核一起放锅里蒸15分钟。15分钟之后将糯米拿出来,倒入开水,稀释成粥状。接着放入蒸锅内继续蒸20分钟左右。蒸好后用铲子将糯米碾压碎。将用来定型切糕的容器底部铺一层保鲜膜,一层糯米一层枣再一层糯米一层枣。放入冰箱冷藏一小时就可以吃了。

  • 北京1号美术馆(新机场里藏着这些)

    9月25日,超大型国际航空综合交通枢纽——北京大兴国际机场历经近5年筹建正式通航。83岁袁运生创作8幅作品画家袁运生正在创作中。其中“中国园”内有一组作品名为《石凳》,由当代艺术家徐冰创作。国际旅客到达后走向海关必经的两条通道里,还有两件数字艺术作品。它的创作者是今年代表中国出征威尼斯双年展的当代艺术家费俊。此外,这件作品的画面还会随季节、天气产生变化,体现中国的田园观。

  • 中岛美嘉年轻时唱歌(偏执歌后中岛美嘉)

    不过中岛美嘉早期接受的一些试镜中;却都遭遇了落选。基本上之后中岛美嘉的每一首新单曲;所取得的销量都是非常的高。但是中岛美嘉在自己的高光时刻的时候;却迎来了非常巨大的冲击;那就是对于一个歌手而言堪称毁灭性的失聪。而经过了十多年的失聪生涯之后,经过不断地治疗;如今中岛美嘉也是逐渐地恢复了听力。但是这一次时隔多年再度演唱这首歌曲;虽然中岛美嘉的嗓音还是有些沙哑,但却非常的平静了。

  • 喷雾状的防晒喷雾能不能带上飞机(防晒喷雾能上飞机)

    杨先生介绍,乘客在江北机场乘机,可以随身携带单支不超过100毫升、累计不超1000毫升无易燃易爆标志的喷雾。被现场安检人员拦下。禁带名单外的物品危险与否需现场认定“和民航规定作出的可携带一定数量含有易燃物质的生活用品不同,目前重庆轨道交通出于安全考虑,禁止携带物品作出一刀切的规定,并未设置可携带的数量。”轨道交通还禁止赤脚、赤膊、烈性传染病患者或健康状况危及他人安全者进站、乘车。

  • 新的电脑要怎么设置好(新电脑到手直接用)

    就是他3.关闭WindowsSearch如果你经常需要在本地搜索东西,建议不要关闭这个,一般大部分人不用可以关闭。关闭方式相同,选择Windowsfirewall关闭即可。这项适合你在有360等安全软件下关闭。在C盘下右击属性。