美文网首页设计模式
设计模式-桥接模式

设计模式-桥接模式

作者: Hengry | 来源:发表于2023-10-15 07:52 被阅读0次

桥接模式(Bridge Pattern)是一种结构型设计模式,用于将抽象部分与它的实现部分分离,以使它们可以独立变>化。桥接模式通常用于解决多层次继承结构导致的类爆炸性增长问题。

以下是一个简单的桥接模式案例,假设我们要设计一个跨不同品牌的遥控器控制不同类型的电视。遥控器和电视之间存在两个维度的变化:遥控器的品牌和电视的类型。

首先,定义遥控器和电视的抽象接口:

protocol RemoteControl {
    func turnOn()
    func turnOff()
    func setChannel(_ channel: Int)
}

protocol TV {
    func powerOn()
    func powerOff()
    func tuneChannel(_ channel: Int)
}

然后,实现具体的遥控器类:

class GenericRemoteControl: RemoteControl {
    let tv: TV

    init(tv: TV) {
        self.tv = tv
    }

    func turnOn() {
        tv.powerOn()
    }

    func turnOff() {
        tv.powerOff()
    }

    func setChannel(_ channel: Int) {
        tv.tuneChannel(channel)
    }
}

接下来,实现不同品牌的电视类:

class SonyTV: TV {
    func powerOn() {
        print("Sony电视已开机")
    }

    func powerOff() {
        print("Sony电视已关机")
    }

    func tuneChannel(_ channel: Int) {
        print("切换Sony电视频道到 \(channel)")
    }
}

class SamsungTV: TV {
    func powerOn() {
        print("Samsung电视已开机")
    }

    func powerOff() {
        print("Samsung电视已关机")
    }

    func tuneChannel(_ channel: Int) {
        print("切换Samsung电视频道到 \(channel)")
    }
}

现在,你可以创建遥控器,并将不同品牌的电视与之连接:

let sonyTV = SonyTV()
let samsungTV = SamsungTV()

let genericRemoteForSony = GenericRemoteControl(tv: sonyTV)
let genericRemoteForSamsung = GenericRemoteControl(tv: samsungTV)

genericRemoteForSony.turnOn()
genericRemoteForSony.setChannel(5)
genericRemoteForSony.turnOff()

genericRemoteForSamsung.turnOn()
genericRemoteForSamsung.setChannel(10)
genericRemoteForSamsung.turnOff()

通过桥接模式,你可以将遥控器和电视的实现部分解耦,允许它们独立地变化。这种模式特别适用于应对多维度的变化,如品牌和类型,同时保持代码的可扩展性和可维护性。

相关文章

  • 设计模式-桥接模式

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

  • 桥接模式

    设计模式:桥接模式(Bridge)

  • 设计模式——桥接模式

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

  • 设计模式之桥接模式

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

  • 桥接模式

    介绍 桥接模式(Bridge Pattern) 也称为桥梁模式,是结构型设计模式之一。桥接模式的作用就是连接 "两...

  • Java设计模式——桥接模式

    Java设计模式之桥接模式 回顾 上一期分享了适配器模式,主要为了实现解耦 桥接模式 简介 桥接模式是对象的结构模...

  • 设计模式-桥接模式

    桥接模式介绍 桥接模式(Bridge Pattern)也称为桥梁模式,是结构型设计模式之一。顾名思义其与现实中的桥...

  • Android设计模式——桥接模式(七大结构型)

    1.桥接模式介绍 桥接模式(Bridge Pattern)也称为桥梁模式,是七大结构型设计模式之一。 2....

  • 2、桥接模式(结构型)

    第一次接触桥接模式是在刷面试题时,遇到问jdbc主要用到的设计模式是?桥接模式。 桥接模式(Bridge):将抽象...

  • Java设计模式<桥接模式>

    Java设计模式<桥接模式> 意图 桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将...

网友评论

    本文标题:设计模式-桥接模式

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