展开

关键词

Adapter模式

Adapter模式 2008-10-2 作者: 张子阳 分类: 设计与模式 生活中有很多Adapter的例子。 类似这样的转接头就充当一个Adapter的作用。类似的例子还有电源的三相/两相 转接头等等。   Adapter模式应该是设计模式中一个轻量级的模式,实现起来也比较简单,有时候不经意中,你可能就已经实现了一个Adapter模式,只是自己没有发现而已。本文将通过一个范例介绍 Adapter模式。 Shape范例 很多编程的书籍中都喜欢使用一个Shape作为范例讲述面向对象中的继承,尽管这里我们讲述的是Adapter模式,但是并不妨碍我们也使用这个Shape的例子。考虑下面一幅关系图: ? 我们将这个包装类命名为Triangle,而这种模式或者解决类似问题的方法,就称为Adapter模式

28820

设计模式02——Adapter模式

使用继承的适配器有一个特点就是Adapter继承了Adaptee,并实现了Target,这就是三者之间的关系。 使用委托的适配器有一个特点就是Adapter拥有了Adaptee,并继承了Target抽象类,这就是三者之间的关系。 浅析适配器模式中的重要角色 适配器设计模式也是一个比较常用的设计模式之一,现对适配器设计模式中的角色进行浅析。 Target(对象) 该角色负责定义最终的需求,也就是使用适配器模式之后的最终效果。 Adapter(适配) 该角色是适配器设计模式的核心角色,他负责适配Adaptee和Target,使得Adaptee来满足Target的需求。 适配器设计模式UML类图 分析完适配器设计模式的重要角色,当然也得理清适配器设计模式的UML类图。 使用继承的适配器设计模式类图 ? 使用委托的适配器设计模式类图 ?

24220
  • 广告
    关闭

    【玩转 Cloud Studio】有奖调研征文,千元豪礼等你拿!

    想听听你玩转的独门秘籍,更有机械键盘、鹅厂公仔、CODING 定制公仔等你来拿!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    详解设计模式-Adapter模式

    Adapter模式 2.示例程序1(使用继承的适配器) 类图 Banner类 Print接口 PrintBanner类 Main类 运行结果 1. Adapter模式 如果想让额定工作电压是直流12V的笔记本电脑在交流100V的AC电源下工作,应该怎么做呢?通常,我们会使用AC适配器,将家庭用的100V电压转换成我们需要的12V电压。 这种用于填补“现有的程序”和“所需的程序”之间差异的设计模式就是Adapter模式Adapter模式也被称为Wrapper模式Adapter模式有两种: 类适配器模式(使用继承的适配器) 对象适配器模式(使用委托的适配器) 2.示例程序1(使用继承的适配器) 这是一段会将输入的字符串显示为(Hello)或者*Hello*的简单程序

    12120

    适配器模式Adapter

    适配器模式Adapter) 适配器模式Adapter)[Wrapper] 意图:将类的一个接口转换成用户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的类可以一起工作。 模式结构: ? 心得: 适配器模式一般应用在具有相似接口可复用的条件下。 适配器(Adapter)组合了Adaptee接口,使用函数调用的方式产生兼容的Target接口实现。 ()     {         adaptee->specificRequest();//适配请求     } virtual ~Adapter()     {         delete adaptee ;     } }; 使用适配器就很简单了,只要将被适配的对象适配为所需的接口即可: Target* target=new Adapter(new Adaptee); target->request()

    34190

    【设计模式】—— 适配器模式Adapter

    模式意图   如果已经有了一种类,而需要调用的接口却并不能通过这个类实现。因此,把这个现有的类,经过适配,转换成支持接口的类。   换句话说,就是把一种现有的接口编程另一种可用的接口。    模式结构   【类的适配器】 ?   Target 目标接口   Adaptee 现有的类   Adapter 中间转换的类,即实现了目标接口,又继承了现有的类。 18 public class test { 19 public static void main(String[] args){ 20 Target tar = new Adapter implements Target{ 15 private Adaptee adaptee; 16 public Adapter(Adaptee adaptee){ 17 (这个没理解,以后慢慢琢磨)   生活中的设计模式   俗话说,窈窕淑女君子好逑,最近看跑男,十分迷恋Baby。 ?   但是,如果桃花运浅,身边只有凤姐,那么也不需要担心。 ?

    255100

    适配器模式(Adapter)

    属于结构型模式 主要分为三类:类适配器模式、对象的适配器模式、接口的适配器模式。 一句话描述适配器模式的感觉: src->Adapter->dst,即src以某种形式(三种形式分别对应三种适配器模式)给到Adapter里,最终转化成了dst。 二 类适配器模式 一句话描述:Adapter类,通过继承 src类,实现 dst 类接口,完成src->dst的适配。 ,只是将Adapter类作修改,这次不继承src类,而是持有src类的实例,以解决兼容性的问题。 (根据“合成复用原则”,在系统中尽量使用关联关系来替代继承关系,因此大部分结构型模式都是对象结构型模式。)

    33110

    适配器(Adapter模式

    适配器(Adapter) Intent 把一个类接口转换成另一个用户需要的接口。

    7030

    『设计模式』适配器模式(Adapter)

    适配器模式(Adapter) 适配器模式把一一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。 这就带来了一个问题:我们在应用程序中已经设计好了接口,与这个第三方提供的接口不一致,为了使得这些接口不兼容的类(不能在-起工作)可以在一起工作,Adapter模式提供了将一个类(第三方库)的接口转化为客户 由于Adapter与Adaptee是委派(组合)关系,这决定了这个适配器模式是对象的。 目标(Target)角色这是客户所期待的接口。目标可以是具体的或抽象的类也可以是接口。 实现要点 Adapter模式主要应用于“希望复用一些现存的类,但是接口又与复用环境要求不一致的情况”,在遗留代码复用、类库迁移等方面非常有用。 Adapter模式有对象适配器和类适配器两种形式的实现结构 类适配器采用“多继承”的实现方式带来了不良的高耦合,所以一般不推荐使用。 对象适配器采用“对象组合”的方式,更符合松耦合精神。

    19620

    适配器模式Adapter

    1.模式的定义: 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式的分类: 通过继承实现Adapter (继承Adaptee)—类适配器 通过委让实现Adapter (包含Adaptee对象)—对象适配器 结构图: ? 2.模式的UML图 ? 研磨设计模式 转接线可以把电源的接口适配成为新的硬盘所需要的接口,转接线的角色就是适配器(Adapter) 适配器模式的定义:将一个类的接口转换成客户希望的另外一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 适配器模式的本质:转换匹配,复用功能。 对象适配器和类适配器的权衡: 1. 类适配器使用类继承的方式,对象适配器使用对象组合的方式 2. 1)缺省适配器 缺省适配(Default Adapter)模式为一个接口提供缺省实现,这样子类型可以从这个缺省实现进行扩展,而不必从原有接口进行扩展。

    17730

    精读《设计模式 - Adapter 适配器模式

    Adapter(适配器模式Adapter(适配器模式)属于结构型模式,别名 wrapper,结构性模式关注的是如何组合类与对象,以获得更大的结构,我们平常工作大部分时间都在与这种设计模式打交道。 Adapter 模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作。 这个设计模式的意图很好懂,就是把接口不兼容问题抹平。注意,也仅仅能解决接口不一致的问题,而不能解决功能不一致的问题。 这样就可以通过适配器满足 Adapter 的意图: 意图:将一个类的接口转换成客户希望的另一个接口。Adapter 模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作。 结构图 适配器的实现分为继承与组合模式。 下面是名词解释: Adapter 适配器,把 Adeptee 适配成 Target。 Adaptee 被适配的内容,比如不兼容的接口。 要被适配的类方法叫 sayHello sayHello() { console.log('hello') } } // 适配器继承 Adaptee 并实现 ITarget class Adapter

    9620

    Java适配器模式(adapter)

    本文介绍下java设计模式中的适配器模式 适配器模式 什么是适配器模式   将一个类的接口转换成客户希望的另外一个接口。 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 模式中的角色 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象 的类,也可以是接口。 适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成 目标接口 适配器的实现方式 ? void handleReq(); } 适配器类 /** * 适配器 (类适配器方式) * (相当于usb和ps/2的转接器) * @author 波波烤鸭 * */ public class Adapter JavaSE中使用到适配器模式的场景 java.io.InputStreamReader(InputStream) java.io.OutputStreamWriter(OutputStream) ~适配模式比较简单

    69230

    适配器模式(Adapter ClassObject)

    适配器模式(Adapter Class/Object) 是指将一个接口转换成客户端希望的另外一个接口,该模式使得原本不兼容的类可以一起工作。 (HDMI接口) 3.适配器角色(Adapter):把源接口转换成符合要求的目标接口的设备。(HDMI-VGI转换器) 4.客户端(client):例子中指的VGI接口显示器。 vgiPort = new HDMIToVGI(hdmiPort); //经过转换HDMI接口变成了VGI接口 vgiPort.workByVGI(); } 总结 适配器模式优点 适配器模式缺点:过多地使用适配器,会让系统非常零乱,不易整体进行把握。 适用场景: 1.系统需要使用现有的类,而此类的接口不符合系统的需要。

    25010

    设计模式- 适配器模式Adapter Pattern)

    Adapter:适配器,负责Adaptee的接口与Target接口进行适配。 适配器模式特点: 类适配器 使得Adapter可以重定义Adaptee的部分行为。 因为Adapter是Adaptee的一个子类; 仅仅引入了一个对象,并不需要额外的指针间接得到Adaptee。 对象适配器 允许一个Adapter与多个Adaptee同时工作。 Adapter也可以一次给所有的Adaptee添加功能; 使得重定义Adaptee的行为比较困难。需要生成一个Adaptee的子类,然后使Adapter引入这个子类而不是引用Adaptee本身。 源码地址 dotnet-design-patterns 其他设计模式 23种设计模式

    24820

    Java设计模式(六)Adapter适配器模式

    一、场景描述 “仪器数据采集器”包含采集数据以及发送数据给服务器两行为,则可定义“仪器数据采集器”接口,定义两方法“采集数据capture”和“发送数据send...

    46550

    3.设计模式--适配器模式(adapter模式)

    1.场景 适配器模式可能是开发人员用的最多的一种设计模式,做后台开发你可能每天都在使用。 适配器模式分为2种,类适配器(使用继承)和对象适配器(使用委托) 2.类适配器结构图 3.实现适配器模式 AlternatingCurrent相当于交流电,他有两个抽象方法,输出高电压和低电压。 Adapter相当于就是适配器,他的作用就是将交流电转换为直流电,供手机充电使用。 Adapter通过实现交流电的方法,继承直流电,然后进行包装将交流电变成12V或者6V电压 测试结果如下,可以看到使用适配器进行转换的时候能够将交流电转换为12V的直流电或者6V的直流电。 Adapter作为适配器,将交流电转换为直流电,相比类适配器,我们使用的是委托,也就是在Adapter定义了一个直流电的成员变量。这样就能解决适配器不能转无线电了。

    22720

    浅谈Adapter中观察者模式

    ------------------------------------------------------------------------------------- 一、首先,让我们看一下观察者模式的介绍 : 观察者模式(Observer)完美的将观察者和被观察的对象分离开。 观察者模式在模块之间划定了清晰的界限,提高了应用程序的可维护性和重用性。 观察者设计模式定义了对象间的一种一对多的依赖关系,以便一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动刷新。 二、Adapter本身包含一个观察者模式 DataSetObserver 注意:DataSetObserver 是一个抽象类,使用的时候需要创建子类,不是接口。 的数据变化观察者,只要Adapter的notifyDataSet被调用,观察者自动调用 adapter.registerDataSetObserver(sumObserver); 3、注销观察者

    753120

    设计模式实例(Lua)笔记之六(Adapter模式

    年的时候带了一个项目,做一个人力资源管理,该项目是我们总公司发起的项目,公司一共同拥有 700 多号人,包含子公司,这个项目还是比較简单的,分为三大模块:人员信息管理,薪酬管理,职位管理,当中人员管理这块就用到了适配器模式 使用适配器模式,类图例如以下: 2.代码: require "class" --------IUserInfo------- IUserInfo = class() function IUserInfo

    9030

    23种设计模式(二) —— 手写实现 Adapter 模式

    手写适配器模式 二、Adapter 模式 (加一个适配器,以便复用) 2.1 适配器模式通俗的解释 2.2 适配器的模式的种类 2.3 实现适配器模式 2.3.1 使用继承的适配器 2.3.2 使用委托的适配器 二、Adapter 模式 (加一个适配器,以便复用) 2.1 适配器模式通俗的解释 适配器模式的解释:在程序世界中,经常会有现现有的程序无法直接使用的情况,需要做适当的变换才可以使用。 这种用于填补 “现有的程序” 和 “所需的程序” 之间差异的设计模式就称为 适配器模式 我的理解:**适配器模式可以类比为 插头 与 **插座 **的关系 2.2 适配器的模式的种类 类适配器模式(使用继承的适配器 使用 Adapter 模式可以在完全不修改现有代码的前提下使现有代码适配新的接口 API。 在 Adapter 模式中,并非一定需要现成的代码,只需要知道类的功能,就可以编写出新的类 2.5 适配器模式总结 使用 “继承”、“委托”实现适配器模式 Adapter 用于填补具有不同接口(API)

    11730

    浅谈JAVA设计模式之——适配器模式Adapter

    Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 二、适用性 1.使用一个已经存在的类,而它的接口不符合你的需求。 4.Adapter 对Adaptee的接口与Target接口进行适配 四、类图 ? ; } } Adapter package com.lyz.design.adapter; /** * Target的实现类 * @author binghe * */ public class Adapter implements Target { private Adaptee adaptee; public Adapter(Adaptee adaptee) { Adapter method!

    19730

    设计模式(五)适配器模式Adapter(结构型)

    设计模式(五)适配器模式Adapter(结构型) 一. 概述 接口的改变,是一个需要程序员们必须(虽然很不情愿)接受和处理的普遍问题。 适配器模式Adapter Pattern),把一个类的接口变换成客户端所期待的另一种接口, Adapter模式使原本因接口不匹配(或者不兼容)而无法在一起工作的两个类能够在一起工作。 应用场景 以下情况使用Adapter模式: 1 • 你想使用一个已经存在的类,而它的接口不符合你的需求。 使用Adapter模式时需要考虑的其他一些因素有: 1) Adapter的匹配程度 对Adaptee的接口与Target的接口进行匹配的工作量各个Adapter可能不一样。 ,你可以运用适配器(Adapter)模式来避免因外部库改变所带来的不便——倘若向上兼容。

    9930

    相关产品

    • 共享带宽包

      共享带宽包

      共享带宽包(BWP)是一种多IP聚合的计费模式 ,可大幅降低公网费用 。共享带宽包提供包月带宽 ,月 TOP5 消峰计费 ,月 95 消峰计费等多种计费模式 ,满足您不同业务场景。合理配置共享带宽包可帮您大幅降低公网费用 ,优化业务成本。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券