桥接模式的目的是为了解耦抽象与实现,使得抽象部分与实现部分可以独立变化。示例代码如下:
from abc import ABCMeta, abstractmethod
class Abstract(metaclass=ABCMeta):
def __init__(self, implement):
self._implement = implement
class AbstractA(Abstract):
def do(self):
print('do by abstract A')
self._implement.oper()
class AbstractB(Abstract):
def do(self):
print('do by abstract B')
self._implement.oper()
class Implement(metaclass=ABCMeta):
@abstractmethod
def oper(self):
pass
class ImplementA(Implement):
def oper(self):
print('opered by ImplementA')
class ImplementB(Implement):
def oper(self):
print('opered by ImplementB')
if __name__ == '__main__':
a = AbstractA(ImplementA())
b = AbstractB(ImplementB())
a.do()
b.do()
输出:
do by abstract A
opered by ImplementA
do by abstract B
opered by ImplementB