桥模式
-
内容
将一个事务的两个维度分离,使其可以独立的变化
-
角色
- 抽象
- 细化抽象
- 实现者
- 具体实现者
-
应用场景
- 当事务有两个维度,两个维度都可能拓展
-
优点
- 抽象和实现相分离
- 优秀的扩展能力
-
代码实例
from abc import ABCMeta,abstractmethod class Shape(metaclass=ABCMeta): # 形状类 """docstring for Shape""" def __init__(self,color): self.color = color @abstractmethod def draw(self): pass class Color(metaclass=ABCMeta): # 颜色类 """docstring for Color""" @abstractmethod def paint(self,shape): pass class Rectangle(Shape): """docstring for rectangle""" name = '长方形' def draw(self): self.color.paint(self) class RedColor(Color): name = '红色' """docstring for RedColor""" def paint(self,shape): print('这是一个{}颜色的{}'.format(self.name,shape.name)) rectangle = Rectangle(RedColor()) rectangle.draw()