Swift-桥接模式

作者: FlyElephant | 来源:发表于2017-06-03 18:13 被阅读17次

桥接模式定义将抽象部分与实现部分分离,使它们都可以独立的变化.熟悉桥接模式之前需要了解两个概念类的功能层次结构和类的实现层次结构.

类的功能实现层次结构是指如果在项目中新增功能,部分功能项目已经实现,通过添加子类继承来实现新增功能,有可能出现类的层次过多的情况.

类的实现层次结构是指父类通过抽象方法定义接口,新增功能的时候新增抽象方法,子类负责实现具体的实现.

桥接模式.png

抽象(Abstraction):定义抽象接口,该接口中包含实现具体行为、具体特征的Implementor接口.

改善的抽象(RefinedAbstraction):继承自Abstraction的子类,在Abstraction角色基础上增加新功能.

实现者(Implementor):定义用于实现Abstraction行为的接口.

具体实现者(ConcreteImplementor):实现Implementor的接口.

以空调和显示器为例子:
<pre><code>`class AirConditioner {

var monitor:Monitor?

init(monitor:Monitor) {
    self.monitor = monitor
}

func display() { }

}

class HaierAirConditioner: AirConditioner {

override func display() {
    self.monitor?.showTemperature()
}

}`</code></pre>

<pre><code>`class Monitor {

func showTemperature() { }

}

class TemperatureMonitor:Monitor {

override func showTemperature() {
    print("FlyElephant---风和日丽,万里无云")
}

}`</code></pre>

<pre><code>let airConditioner:HaierAirConditioner = HaierAirConditioner(monitor: TemperatureMonitor()) airConditioner.display()</code></pre>

适用场景:
① 当一个对象有多个变化因素时,可以考虑使用桥接模式,通过抽象这些变化因素,将依赖具体实现修改为依赖抽象.

② 当一个对象的多个变化因素可以动态变化,不希望影响客户端的程序使用时可以考虑桥接模式.

③ 如果使用继承的实现方案,会导致产生很多子类,任何一个变化因素都需要产生多个类来完成,就要考虑桥接模式.

相关文章

  • Swift-桥接模式

    桥接模式定义将抽象部分与实现部分分离,使它们都可以独立的变化.熟悉桥接模式之前需要了解两个概念类的功能层次结构和类...

  • Swift-桥接模式(Bridge Pattern)

    桥接模式 桥接模式的目的是把抽象层次结构从其实现中分离出来,使其能够独立变更。 抽象层定义了供客户端使用的上层的抽...

  • 设计模式-桥接模式

    设计模式-桥接模式 定义 桥接模式(Bridge Pattern)也称为桥梁模式、接口(Interface)模式或...

  • 结构型模式:桥接模式

    文章首发:结构型模式:桥接模式 七大结构型模式之二:桥接模式。 简介 姓名 :桥接模式 英文名 :Bridge P...

  • 设计模式之桥接模式

    设计模式之桥接模式 1. 模式定义 桥接模式又称柄体模式或接口模式,它是一种结构性模式。桥接模式将抽象部分与实现部...

  • 06-01-001 虚拟机的网络连接方式(转运整理)

    一、Bridged(桥接模式) 什么是桥接模式?桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥...

  • 桥接模式与中介模式

    桥接模式-BRIDGE 对桥接模式感兴趣,是因为公司业务上需要桥接Html5和ReactNative两个平台。桥接...

  • 设计模式——桥接模式

    设计模式——桥接模式 最近公司组件分享设计模式,然而分配给我的是桥接模式。就在这里记录我对桥接模式的理解吧。 定义...

  • 桥接模式

    个人博客http://www.milovetingting.cn 桥接模式 模式介绍 桥接模式也称为桥梁模式,是结...

  • 桥接模式

    桥接模式 参考原文: https://zhuanlan.zhihu.com/p/62390221 定义 桥接模式 ...

网友评论

    本文标题:Swift-桥接模式

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