美文网首页
【设计模式】适配器模式与外观模式

【设计模式】适配器模式与外观模式

作者: CloudHunter | 来源:发表于2017-01-01 18:54 被阅读0次

设计模式: 适配器模式

定义:适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。
这个模式可以通过创建适配器进行接口转换,让不兼容的接口变成兼容。这可以让客户从实现中解耦。如果在一段时间之后,我们想要改变接口,适配器可以将改变的部分封装起来,客户就不必为了应对不同的接口而每次跟着修改。

对象和类的适配器
类适配器通过多重继承实现,对象适配器通过组合来实现。类适配器不是使用组合来适配被适配者,而是继承被适配者和目标类。

  • 对象适配器可以适配某个类和其子类,类适配器不用重新实现整个被适配者,也可以覆盖其行为。
  • 对象适配器具有更大的弹性,但是会有更多的子类,一旦接口发生变更,对象适配器的改动更大

装饰者和适配器

  • 适配器“一定”会进行接口的转换,装饰者则“不一定”,装饰者的意图是扩展所包装对象的行为或责任

设计模式:外观模式

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


设计原则

最少知识原则:只和你的密友交谈
当你正在设计一个系统,不管是任何对象,你都要注意他所交互的类有哪些,并注意它和这些类是如何交互的。
这个原则希望我们在设计中,不要让太多的类耦合在一起,免得修改系统中的一部分,会影响到其他部分。如果许多类之间相互依赖,那么这个系统就会变成一个易碎的系统,他需要花许多成本维护,也因为太复杂而不容易被其他人了解。

一些指导方针:在任何对象的方法内,我们应该只调用属于如下范围的方法

  • 该对象本身
  • 被当做方法参数传进来的对象
  • 此方法所创建或实例化得任何对象
    这些方针告诉我们,如果某对象调用其他的方法返回结果,不要调用该对象的方法。
  • 对象的任何组件
    把“组件“想象成 是被实例变量所引用的任何对象,换句话说,把这想象成是“有一个”(HAS—A)关系。

这个原则可以减少对象之间的依赖,减少软件维护的成本,但采用这个原则也会导致更多的“包装”类被制造出来,以处理和其他组件的沟通,这可能会导致复杂度和开发时间的增加,并降低运行时性能。


要点:

  • 当需要使用一个现有的类而其接口并不符合你的需要时,就使用适配器
  • 当需要简化并统一一个很大的接口或者一群复杂的接口时,使用外观
  • 适配器改变接口以符合客户的期望
  • 外观将客户从一个复杂的子系统中解耦
  • 实现一个适配器可能需要一番功夫,也可能不费功夫,视目标接口的大小与复杂程度而定
  • 实现一个外观,需要将子系统组合进外观中,然后将工作委托给子系统执行
  • 适配器有两种形式:对象适配器和类适配器。类适配器需要用到多重继承
  • 你可以为一个子系统实现一个以上的外观
  • 适配器将一个对象包装起来以改变其接口;装饰者将一个对象包装起来以增加新的行为和责任;而外观将一群对象“包装“起来以简化其接口

相关文章

  • 设计模式(java)- 模版方法模式

    之前学习的是适配器模式与外观模式。 对外观模式与适配器模式的理解 适配器模式的意思就是适配,将三孔插座转换为二孔插...

  • iOS设计模式

    设计模式:MVC模式、单例模式、观察者模式、工厂模式、代理模式、策略模式、适配器模式、模版模式、外观模式、创建模式...

  • Retrofit源码解析

    设计模式:建造者模式、工厂方法模式、外观模式、代理模式、单例模式、策略模式、装饰模式、适配器模式、代理模式 一、R...

  • Retrofit 面试总结

    涉及到的设计模式 外观模式,构建者模式,工厂模式,代理模式,适配器模式,策略模式,观察者模式 概括 Retrofi...

  • 设计模式:结构型

    享元模式 (Pools,Message) 代理模式 适配器模式 :类适配器和对象适配器 装饰者模式 外观模式 桥接...

  • 设计模式的分类

    接口型模式 适配器模式 外观模式 组合模式 桥接模式

  • 设计模式目录

    观察者模式 策略模式 装饰者模式 工厂方法模式 单例模式 命令模式 适配器模式与外观模式 模板方法模式 迭代器与组...

  • 设计模式(结构型模式)

    适配器模式、 装饰器模式、 代理模式、 外观模式、 桥接模式、 组合模式、 享元模式 适配器模式 即定义一个包装类...

  • 结构模式

    结构型模式包括:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式。其中对象的适配器模式是各种...

  • 设计模式系列—适配器模式和外观模式

    《Head First设计模式》读书笔记 适配器模式和外观者模式 一,写在最前面 1,为什么要将这两个设计模式写在...

网友评论

      本文标题:【设计模式】适配器模式与外观模式

      本文链接:https://www.haomeiwen.com/subject/srxivttx.html