精华内容
下载资源
问答
  •  第一眼看到适配器模式,我第一反应就是怎么跟外观模式有点像,仔细看完之后,发现做法上是不一样。 针对适配器模式,笔记本电脑跟显示器需要一根转接线才能连接,而笔记本电脑或者显示器(Client)都依赖于转接...

                                   

                 

     第一眼看到适配器模式,我第一反应就是怎么跟外观模式有点像,仔细看完之后,发现做法上是不一样的。

    针对适配器模式,笔记本电脑跟显示器需要一根转接线才能连接,而笔记本电脑或者显示器(Client)都依赖于转接线这个适配器(Adaptar),而转接线的两个接口(Target)分别适配笔记本电脑跟显示器的接口,让两者相互适配(Adaptee)。当然了,在设计代码过程中,不应该本末倒置,适配器应该是在匹配接口对不上时才使用,比如两套程序相互可能接口无法对接上,那么使用适配器是很好的。但是如果是在同一个程序中就需要考虑适配器,那么这个程序就应该统一接口方式,而不是考虑适配器。

    而外观模式,其实就好像师傅带学徒(可以当做新开发的类),师傅脑海中有许多技巧(类方法),师傅充当一个外观可以按照自己想法给学徒制定一个学习计划,会让学徒少走弯路。而学徒当然也可以自学师傅的那些技巧,但是少了师傅这个环节一切要靠自己会比较艰难。

    所以说适配器模式和外观模式两者还是有区别的。

    总结自:《大话设计模式》适配器模式

    展开全文
  • 代理模式VS外观模式VS适配器模式这三个模式的相同之处是,它们都作用于用户真实被使用的类或系统之间,作一个中间层,起到了让用户间接地调用真实的类的作用。简单扣扣字眼装饰器模式:能动态的新增或组合对象的...

    代理模式VS外观模式VS适配器模式

    这三个模式的相同之处是,它们都作用于用户与真实被使用的类或系统之间,作一个中间层,起到了让用户间接地调用真实的类的作用。


    简单扣扣字眼

    装饰器模式:能动态的新增或组合对象的行为。 
    代理模式:为其他对象提供一种代理以控制对这个对象的访问. 
    适配器模式:是对其他对象接口的一种转换行为,将原接口转换为目标接口,达到适配的效果。
    外观模式:外观对象提供对子系统各元件功能的简化为共同层次的调用接口,它主要起到"简化作用"。

    装饰模式是“新增行为”,代理模式是“控制访问行为”,适配器模式是"转换行为",外观模式是一种"简化行为"。


    代理模式 
    1
     代理模式中的原类和代理类继承同一父类;
    2 原类对象与代理类对象接口相同,功能一致;
    3 起到了隐藏原类的作用。


    适配器模式 
    1
     只有适配器继承目标接口;
    2 讲原有类接口转换为目标代码需求的接口。


    外观模式 
    是多个类的集成、统一适配。


    装饰者模式

    以对 客户端透明(客户端需要指明装饰的是哪个类)的方式 扩展对象的功能,是继承关系的一个替代方案;


    欢迎关注我的公众号:DroidMind

    精品内容,独家发布



    展开全文
  • 设计模式之适配器 对象适配器模式简图 上图很好说明了适配器规则:让client和接口绑定起来,而...区别外观模式适配器模式都可以包装很多类,但是外观意图是简化接口,而适配器意图是将接口转化成不同接口

    设计模式之适配器

    • 对象适配器模式简图
      对象适配器模式简图

      上图很好的说明了适配器规则:让client和接口绑定起来,而不是和实现绑定,实现了客户代码和服务端具体代码的耦合

    • 类适配器模式简图
      类适配器模式简图

    设计模式之外观模式

    • 定义:提供了一个统一的接口,用来访问子系统的一群接口。外观定义了一个高层接口,让子系统更容易使用。
    • 区别:外观模式和适配器模式都可以包装很多类,但是外观的意图是简化接口,而适配器的意图是将接口转化成不同的接口
      外观模式

    • 设计原则:最少知识原则,之和你的密友谈话。
      最少密友

    • 该原则不建议一次层层嵌套的调用内部的方法,更希望最顶层的对象依赖下一层,让下一层去调用下下层。这样,在一个方法中就不会依赖过多的类。代码需要修改时间影响也小,降低了耦合度。
    展开全文
  • 感谢原作者,这篇博客让我对这三个模式的认识更加深刻了,原链接:Dot Net设计模式—适配器、桥接与外观三模式之间的关系    这几天一直在研究各种各样的设计模式,...1.适配器模式与桥接模式的区别和联系  

          感谢原作者,这篇博客让我对这三个模式的认识更加深刻了,原链接:Dot Net设计模式—适配器、桥接与外观三模式之间的关系

          

          这几天一直在研究各种各样的设计模式,在学习适配器模式、桥接模式和外观模式模式的时候,发现他们之间存在着一定的关系,实际上模式不适单一存在的,在我们的现实编程生活中往往是几种模式结合使用的。

    1.适配器模式与桥接模式的区别和联系

            适配器模式和桥接模式都是间接引用对象,因此可以使系统更灵活,在实现上都涉及从自身以外的一个接口向被引用的对象发出请求。
            两种模式的区别在于使用场合不同,适配器模式主要解决两个已有接口间的匹配问题,这种情况下被适配的接口的实现往往是一个黑匣子。我们不想,也不能修改这个接口及其实现。同时也不可能控制其演化,只要相关的对象能与系统定义的接口协同工作即可。适配器模式经常用在与第三方产品的功能集成上,采用该模式适应新类型的增加的方式是开发针对这个类型的适配器,如下所示。
                                            
            桥接模式则不同,参与桥接的接口是稳定的,用户可以扩展和修改桥接中的类,但是不能改变接口。桥接模式通过接口继承或者继承实现功能扩展,如图所示。
                                                     
            按照GOF的说法,桥接模式和适配器模式用于设计的不同阶段,桥接模式用于设计的前期,即在设计类时将类规划为逻辑和实现两个大类,使它们可以分别进行演化;而适配器模式用于设计完成之后,当发现设计完成的类无法协同工作时,可以采用适配器模式。
            然而,很多情况下在设计初期就要考虑适配器模式的使用,如涉及大量第三方应用接口的情况。

    2.适配器模式与桥接模式的联合
            在实际应用中,桥接模式经常和适配器模式同时出现,如图所示。本文给出一些示例,仅供参考。
                                   
            这种情况经常出现在需要其他系统提供实现方法时,一个典型的例子是工业控制中的数据采集。不同工控厂家提供的底层数据采集接口通常不同,因此在做上层软件设计时无法预知可能遇到何种接口。为此需要定义一个通用的采集接口,然后针对具体的数据采集系统开发相应的适配器。数据存储需要调用数据采集接口获得数据,而数据可以保存到关系数据库、实时数据库或者文件中。数据存储接口和数据采集结构构成了桥接,如图所示。
                            
            同样的结构也经常出现在报表相关的应用中,报表本身结构和报表输出方式完全可以分开,如下图所示。
                                
            报表输出可以单独抽象出来与报表的具体形式分开。但报表输出又依赖于具体的输出方式,如果需要输出为PDF格式,则要调用与PDF相关的API,而这是设计所无法控制的,因此这里要使用适配器模式。

    3.适配器模式与外观模式的关系
            适配器模式与外观模式有些相似,都是对现相存系统的封装。但这两种模式的意图完全不同,前者使现存系统与正在设计的系统协同工作而后者则为现存系统提供一个更为方便的访问接口。简单地说,适配器模式为事后设计,而外观模式则必须事前设计,因为系统依赖于外观。总之,适配器模式没有引入新的接口,而外观模式则定义了一个全新的接口。
            适配器模式用于粒度较小的功能集成,如使用权威单位所规定的无法修改并替换的现有算法模块(油罐的容积算法为国家计量权威单位所规定,需要使用特定的模块),将来也可能升级。这时可以使用适配器模式。
            外观模式的使用有时比较难把握,外观接口的定义与设计人员对业务的理解程度有很大关系。如果接口设计过于复杂,则不如直接调用原系统简单;如果接口设计过于简单,有些功能需要调用原有系统才能实现,同样达不到封装目的。在这种情况下,首先要考虑被封装系统的稳定程度。如果系统处于演化阶段,那么接口定义需要复杂一些,以暴露更多的接口。这时,外观模式更像一个大粒度的适配器。被封装系统发生演化时,需要新的外观对象,而这个外观对象起到了适配器的作用。下图所示为这种情况下的结构。
                                                    
    4.总结
            我们讨论了适配器模式、桥接模式和外观模式之间的关系。适配器模式经常用在需要与第三方API协同工作的场合,在功能集成需求越来越多的今天,这种模式的使用频度越来越高,特别是桥接模式与适配器的组合在设计中越来越频繁地出现,几乎已经成为一种新的模式。
            外观模式是另一个在系统演化中常用的模式,在某些情况下,它与适配器模式的作用有些相似。但总体上来说,外观模式所针对的对象粒度更大。

    展开全文
  • 外观模式 定义:提供了一个统一接口,用来访问子系统中一群接口,外观定义了一个高层接口,让子系统更容易使用。 举例:我需要打开微信发送给某个好友某些内容,其中过程包括了,下载微信,输入账号密码,...
  • 代理模式 1 代理模式中原类和代理类继承同一父类;...外观模式 是多个类集成、统一适配。   注意区分 Façade模式、 Adapter模式、 Bridge模式与 Decorator模式。 Façade模式注重简化接口, ...
  • 外观模式 定义:提供了一个统一接口,用来访问子系统中一群接口,外观定义了一个高层接口,让子系统更容易使用。 举例:我需要打开微信发送给某个好友某些内容,其中过程包括了,下载微信,输入账号密码,...
  • 1.适配器模式与桥接模式的区别和联系适配器模式和桥接模式都是间接引用对象,因此可以使系统更灵活,在实现上都涉及从自身以外的一个接口向被引用的对象发出请求。两种模式的区别在于使用场合不同,适配器模式主要...
  • 适配器模式 1 只有适配器继承目标接口; 2 讲原有类接口转换为目标代码需求接口。 外观模式 1 是多个类集成、统一适配。 代理模式注重是隔离限制,关注于控制对对象访问,让外
  • 适配器模式与外观模式 要点 适配器模式 综述 定义 优势 实现适配器模式要注意的地方 使用适配器的过程 对象适配器 类适配器 对象和类适配器的区别 外观模式 综述 定义 优势 外观模式示例 模式测试 适配器...
  • 设计模式是为了提高代码的可扩展性可读性,在...本节要说的就是结构型中的四个模式的区别,先从定义(功能)上进行区别: 定义: 适配器:把一个接口转换成客户期望的类型; 代理:为一个对象提供一个替身或者占位
  • 说实话我觉得适配器模式和外观模式就是一个意思,区别就在于使用初衷。另外适配器模式和装饰者模式很像,根据需要自己选择使用那一种。 适配器模式的本质是对被适配的一个或者多个类进行包装以提供一个目标格式的...
  • 设计模式学习笔记十四:适配器模式、桥接模式与外观模式  1.适配器模式与桥接模式的区别和联系  适配器模式和桥接模式都是间接引用对象,因此可以使系统更灵活,在实现上都涉及从自身以外的一个接口向被引用的...
  • 1.适配器模式与桥接模式的区别和联系适配器模式和桥接模式都是间接引用对象,因此可以使系统更灵活,在实现上都涉及从自身以外的一个接口向被引用的对象发出请求。两种模式的区别在于使用场合不同,适配器模式主要...
  • 适配器模式: 把真实实现模块(一个或者多个对象,或者就是函数库)中,一个一个方法(或者函数),依次匹配到客户需要格式,客户代码一起工作; 外观模式: 把真实实现模块(即,现有系统,往往比较复杂、...
  • 装饰者适配者模式的区别 适配器模式 装饰者模式 新职责/新功能 也可以增加新职责,但主要目的不在此 主要是给被修饰者增加新职责 ...
  • 定义:适配器模式将一个类的接口,转换成客户期望的另一个接口...装饰者模式、外观模式区别适配器模式的目的是包装某些对象让它们的接口看起来不像自己而像别的东西,重在“转换”;而装饰者模式在包装类的基础...
  • 1.适配器模式与桥接模式的区别和联系 适配器模式和桥接模式都是间接引用对象,因此可以使系统更灵活,在实现上都涉及从自身以外的一个接口向被引用的对象发出请求。 两种模式的区别在于使用场合不同,适配器模式...
  •  两种模式的区别在于使用场合不同,适配器模式主要解决两个已有接口间的匹配问题,这种情况下被适配的接口的实现往往是一个黑匣子。我们不想,也不能修改这个接口及其实现。同时也不可能控制其演化,只要相关的对象...
  • 前言 适配器模式、外观模式、装饰者模式都存在语义上的共同点。装饰者模式和外观模式的区别: ...适配器模式的粒度外观模式的粒度不同,适配器可以小到适配一个方法,但是外观模式是对子系统之...
  • 这三个模式的相同之处是,它们都作用于用户真实被使用的类或系统之间,作一个中间层,起到了让用户间接地调用真实的类的作用。   简单扣扣字眼 装饰器模式:能动态的新增或组合对象的行为。  代理模式:为...
  • 7、适配器模式(包装器模式):将一个类接口转换成客户希望另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作那些类可以一起工作。 (委托和块作为适配器) 类适配器 对象适配器区别: (1...
  • 适配器模式:  将一个类接口,转换成客户期望另一个接口。适配器让原本接口不兼容类可以合作无间。 外观模式:  提供了一个统一接口...外观与适配器区别:  1、外观不只是简化了接口,也将客户从组件...

空空如也

空空如也

1 2 3 4 5
收藏数 94
精华内容 37
关键字:

外观模式与适配器模式的区别