# 在提出桥梁模式的时候指出,桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。
# 这句话有三个关键词,也就是抽象化、实现化和脱耦。
# 桥接,是像一座桥连接两岸,而Python程序设计中的桥接指的是抽象部分和实体部分的连接,简单来说是类和类实例化过称中的连接。
# 桥接模式通过在类和类实例化中间作用,使其抽象和实现可以独立变化而不互相干扰,这就是桥接模式最大的作用。
# 核心的思想是通过封装,将一个抽象类的相关参数和方法分别作为桥接类的属性,这样在实例化桥接类后通过修改桥接类的属性,便可以实现抽象和实现之间的独立变化。
class A:
def run(self, name):
print("my name is :{}".format(name))
class B:
def run(self, name):
print("我的名字是:{}".format(name))
class Bridge:
def __init__(self, ager, classname):
self.ager = ager
self.classname = classname
def bridge_run(self):
self.classname.run(self.ager)
if __name__ == '__main__':
# 使用A类初始化
test = Bridge('吴邪', A())
test.bridge_run()
test.ager = 'Victor'
test.bridge_run()
# 改为使用B类
test.classname = B()
test.bridge_run()
test.ager = '吴邪'
test.bridge_run()