概述
桥接模式是一种结构型设计模式,它主要解决的是多继承的问题,它增强了系统的可扩展性,并对抽象部分和实现部分进行了分离。
示例
以一个简单的电视和遥控器的例子来具体实现和解释桥接模式。假设我们有多种类型的电视和多种类型的遥控器,我们可以使用桥接模式来将他们组合在一起,而不是为每种电视和遥控器都创建一个具体的类。
1 | #include <iostream> |
总结:
在这个例子中,首先定义了一个TV接口,它是我们实现部分的一部分。然后我们为Sony和Samsung电视创建了具体的类。
接着,我们定义了一个RemoteControl类,它是我们抽象部分的一部分。这个类有一个TV类型的成员变量,这就是我们的桥接。
我们还定义了一个AdvancedRemoteControl类,它继承了RemoteControl类,并添加了一个新的方法setChannel。
在main函数中,我们创建了一个SonyTV对象和一个RemoteControl对象,然后使用RemoteControl对象来控制SonyTV对象。我们也创建了一个SamsungTV对象和一个AdvancedRemoteControl对象,并使用AdvancedRemoteControl对象来控制SamsungTV对象。
这样,就可以在不改变RemoteControl类和TV类的情况下,将任意类型的遥控器和电视组合在一起。这就是桥接模式的主要优点。
补充更新
桥接模式:有多个独立变换的维度时,将抽象部分与实现部分分离开来,使它们都可以独立的变化。
举例:Computer基类 的 成员函数void InstallOS(OS *os),入参为OS基类