美文网首页
适配器和外观模式

适配器和外观模式

作者: 满天星爱我 | 来源:发表于2018-12-24 23:12 被阅读9次

适配器模式

定义

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

要点

  • 当需要使用一个现有的类而其接口并不符合你的需求时,就使用适配器
  • 适配器改变接口以符合客户的期望
  • 适配器有两种形式:对象适配器和类适配器。类适配器需要用到多重继承。

适配器(有两种)

结构图如下:

  • 类适配器
类适配器.png
  • 对象适配器
对象适配器.png

它们之间的区别

  • 类适配器继承了TargetAdaptee
  • 而对象适配器利用组合的方式将请求传送给被适配者

外观模式

定义

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

要点

  • 当需要简化并统一一个很大的接口或者一群复杂的接口时,使用外观
  • 外观将客户从一个复杂的子系统中解耦
  • 实现外观需要将子系统组合进外观中,然后将工作委托给子系统执行

从它的定义上来看其实很好理解,外观的意图是要提供一个简单的接口,好让一个子系统更易于使用。如下为这个模式的类图:

外观模式.png

设计原则

  • “最少知识”原则
    告诉我们要减少对象之间的交互,只留下几个“密友”,只和你的密友交谈。这个原则是希望我们在设计中,不要让太多的类耦合在一起,免得修改系统中一部分,会影响到其他部分。如果许多类之间相互依赖,那么这个系统就会变成一个易碎的系统,它需要花费很大成本去维护,也会因为太复杂而不容易被其他人了解。

那么如何不要让太多的类耦合在一起?

就任何对象而言,在该对象的方法内,我们只应该调用属于以下范围的方法:

  • 该对象本身

  • 被当作方法的参数而传递进来的对象

  • 此方法所创建或实例化的任何对象

    以上这些方针告诉我们,如果某对象是调用其它的方法的返回结果,不要调用该对象的方法

  • 对象的任何组件

    把“组件”想象成是被实例变量所引用的任何对象

那么如果调用从另一个调用中返回的对象的方法,会有什么害处?如果这样做,就相当于向另一个对象的子部分发出请求。在这种情况下,原则要我们改为要求该对象为我们做出请求,这样的话,我们就不需要认识该对象的组件了,如下例子:

不采用这样的原则:

public float getTemp(){
    Thermometer thermometer = station.getThermometer();
    return thermometer.getTemperature();
}

我们从气象站获取温度计,再从温度计对象取得温度。

采用这样的原则:

public float getTemp(){
    return station.getTemperature();
}

我们在气象站中加进一个方法,用来向温度计请求温度。这可以减少我们所依赖的类的数目。

适配器、外观、装饰者区别

  • 适配器将一个对象包装起来以改变接口
  • 装饰者将一个对象包装起来以增加新的行为和责任
  • 外观将一群对象“包装”起来以简化其接口

相关文章

  • 设计模式:结构型

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

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

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

  • 设计模式的分类

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

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

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

  • 结构模式

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

  • 适配器模式和外观模式

    结构型设计模式 适配器模式 简要定义 将一个类的接口,转换成所期望的另一个接口. 适配器模式让原本不相容的类可以合...

  • 适配器模式和外观模式

    适配器模式:将一个类的接口转换成客户期望的另一个接口;让原本不兼容的类可以兼容 外观模式:提供了一个统一的接口,用...

  • 适配器模式和外观模式

    适配器模式,将类的接口转化为想要的接口样式。 外观模式,让对象包装起来,以简化接口。 鸭子## 鸭子,依然是鸭子的...

  • 适配器模式和外观模式

    适配器模式 定义 将一个类的接口转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 使用场景 想...

  • 适配器和外观模式

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

网友评论

      本文标题:适配器和外观模式

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