""" 实例 汤宝宝成为了一个电子画家,但是不同形状的笔刷和不同颜色颜料的组合让他犯了难... """ from abc import ABC, abstractmethod # 抽象类 class Paint(ABC): @abstractmethod def use(self) -> str: pass class Brush(ABC): @abstractmethod def draw(self) -> None: pass # 具体实现类 class RedPaint(Paint): def use(self) -> str: return "红色颜料" class BluePaint(Paint): def use(self) -> str: return "蓝色颜料" class RoundBrush(Brush): def __init__(self, paint: Paint) -> None: super().__init__() self.paint = paint def draw(self) -> None: print("使用圆形笔刷和" + self.paint.use() + "进行绘图!") class SquareBrush(Brush): def __init__(self, paint: Paint) -> None: super().__init__() self.paint = paint def draw(self) -> None: print("使用方形笔刷和" + self.paint.use() + "进行绘图!") # 绘图函数 def painting(brush: Brush) -> None: brush.draw() if __name__ == "__main__": print("============= 桥接模式 =============") red_paint = RedPaint() blue_paint = BluePaint() painting(RoundBrush(red_paint)) painting(SquareBrush(red_paint)) painting(RoundBrush(blue_paint)) painting(SquareBrush(blue_paint)) print("\n=========== 桥接模式结束 ===========")