设计模式之七:适配器模式与外观模式

这篇具有很好参考价值的文章主要介绍了设计模式之七:适配器模式与外观模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

面向对象适配器将一个接口转换成另一个接口,以符合客户的期望。

设计模式之七:适配器模式与外观模式,设计模式,适配器模式,外观模式

// 用火鸡来冒充一下鸭子

class Duck
{
public:
	virtual void quack() = 0;
	virtual void fly() = 0;
};

class Turkey
{
public:
	virtual void gobble() = 0;
	virtual void fly() = 0;
};

class TurkeyAdapter : public Duck
{
private:
	Turkey* turkey;

public:
	TurkeyAdapter(Turkey* turkey)
	{
		this->turkey = turkey;
	}

	virtual void quack()
	{
		turkey->gobble();
	}

	virtual void fly()
	{
		turkey->fly();
	}
};
  1. 客户通过目标接口调用适配器的方法对适配器发出请求。
  2. 适配器使用被适配者接口把请求转换成被适配者的一个或多个调用接口。
  3. 客户接收到调用的结果,但并未察觉这一切是适配器在起转换作用。

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

设计模式之七:适配器模式与外观模式,设计模式,适配器模式,外观模式

实际上,适配器有两种,前面介绍的是“对象” 适配器。下面则是“类”适配器。

设计模式之七:适配器模式与外观模式,设计模式,适配器模式,外观模式

 接下来会马上介绍外观模式,我们在这里可以通过模式的设计意图区分装饰者、适配器和外观模式。

  • 装饰者:不改变接口,但加入责任
  • 适配器:将一个接口转换成另一个接口
  • 外观:让接口更简单(提供子系统的一个简化接口)

假如你组装了一套家庭观影系统,内含DVD播放器、投影机、自动屏幕、环绕立体声和爆米花机。当你想要观影的时候,必须先执行一些任务,如打开DVA、投影机、屏幕、音响、爆米花机,然后调整好声音,屏幕大小等。这十分的麻烦,因此,我们可以使用外观模式,提供一个方法,把以上内容都搞定。

设计模式之七:适配器模式与外观模式,设计模式,适配器模式,外观模式

外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。

“最少知识”原则:告诉我们要减少对象之间的交互,只和你的密友谈话。(也叫墨忒耳法则)

不要让太多类耦合在一起,免得修改系统中一部分,会影响到其它部分。就任何对象而言,在该对象的方法内,我们只应该调用属于以下范围的方法:

  • 该对象本身
  • 被当作方法的参数而传进来的对象
  • 此方法所创建或实例化的任何对象
  • 对象的任何组件

设计模式之七:适配器模式与外观模式,设计模式,适配器模式,外观模式

 1文章来源地址https://www.toymoban.com/news/detail-646622.html

到了这里,关于设计模式之七:适配器模式与外观模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 设计模式——适配器模式

    说起适配器其实在我们的生活中是非常常见的,比如:学校的宿舍的电压都比较低,而有的学生想使用大功率电器,宿舍的就会跳闸,然而如果你使用一个适配器(变压器)就可以使用了(温馨提示宿舍使用大功率电器不太安全,容易引起火灾,希望大家谨慎使用)。 又比如

    2024年02月12日
    浏览(58)
  • 设计模式-- 3.适配器模式

    将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 请求者(client):客户端角色,需要使用适配器的对象,不需要关心适配器内部的实现,只对接目标角色。 目标角色(Target):目标角色,和client直接对接,定义

    2024年01月18日
    浏览(64)
  • 设计模式四:适配器模式

    1、适配器模式的理解 适配器模式可以理解为有两个现成的类Adaptee和Target,它们两个是不能动的,要求必须使用B这个类来实现一个功能,但是A的内容是能复用的,这个时候我们需要编写一个转换器 适配器模式 Adaptee:被适配者,现有的接口或者类; Adapter:适配器类,适配器

    2024年02月22日
    浏览(49)
  • 《设计模式》之适配器模式

    把一个类的接口转换成客户端所期待的另一种接口,从而使原接口不匹配而无法再一起工作的两个类能在一起工作。 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不能满足的。 如何应对

    2024年02月09日
    浏览(53)
  • 设计模式 06 适配器模式

    适配器模式(Adapter Pattern)属于 结构型 模式 结构型 模式关注如何将现有的类或对象组织在一起形成更加强大的结构。 在生活中,我们经常遇到这样的一个问题:轻薄笔记本通常只有 type-c 或者 usb-a 接口,没有网口。但日常使用中是往往需要连接网口上网的,这时想到的第

    2024年02月11日
    浏览(41)
  • 适配器设计模式

    一、适配器模式 B站:java架构师 定义:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作 三种适配器:类的适配器模式、对象的适配器模式、接口的适配器模式 1.类适配器模式 实现方式:让

    2024年02月11日
    浏览(51)
  • 设计模式——适配器

    说起适配器,大家第一个想到的可能就是电源适配器。 电源适配器的作用想必同学们也都清楚,那就是将220伏高电压转换成想要的5伏至20伏左右稳定的低电压。 从某种程度上讲,编程中经常提起的适配器模式的原理与上面讲到的基本是一致的。 用于将一个类的接口转换成另

    2024年02月12日
    浏览(54)
  • 【设计模式】使用适配器模式做补偿设计

    适配器模式是一种 结构型设计模式 ,它提供了一个中间层,通过这个中间层,客户端可以使用统一的接口与具有不同接口的类进行交互,也就是说,将一个接口转换成客户期望的另一个接口,使得原本不兼容的接口能够协同工作。 举个现实中的例子,我们现在的很多轻薄笔

    2024年02月22日
    浏览(44)
  • 【前端设计模式】之适配器模式

    适配器模式是一种常见的设计模式,用于将一个类的接口转换成客户端所期望的另一个接口。在前端开发中,适配器模式可以帮助我们解决不同框架或库之间的兼容性问题,提高代码的复用性和可维护性。 适配器类:适配器类是实现目标接口并包含对被适配对象的引用。它将

    2024年02月07日
    浏览(51)
  • js设计模式:适配器模式

    可以将某种不同格式的数据转化为自己所期待的数据格式 或者对于一些存在兼容或者特殊处理的业务逻辑,可以进行一个适配

    2024年02月22日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包