简述
桥接模式可以将多个功能相似的对象拼接在一起,就像我们的笔记本电脑提供给中接口,它能将鼠标,键盘,音响等等连接一起,让他们协同工作。
我们还是拿椰奶的例子来说明,对于怎么喝椰奶我们可以定义多个对象,比如喝盒装椰奶、喝罐装椰奶等对象,此时我们再定义一个椰奶对象,他能引用上面定义的对象。 从总体上看椰奶对象就是一个桥。
实践一下
import abc
class CoconutMilk:
"""
椰奶类,可以理解这就是桥,能联通所有的 引用类
"""
def __init__(self, drink_method):
self.drink_method = drink_method
def drink(self):
print(f"我要喝了了呀 =》 你喝的是 {self.drink_method.drink()}")
class CoconutMilkDrink(metaclass=abc.ABCMeta):
"""
这是抽象类
"""
@abc.abstractmethod
def drink(self):
pass
class BoxCoconutMilk(CoconutMilkDrink):
"""
纸盒椰奶
"""
def drink(self):
return "这是纸盒椰奶"
class IronCoconutMilk(CoconutMilkDrink):
"""
铁罐椰奶
"""
def drink(self):
return "这是铁盒椰奶"
if __name__ == '__main__':
CoconutMilk(BoxCoconutMilk()).drink()
CoconutMilk(IronCoconutMilk()).drink()
运行结果如下: