Python设计模式——桥模式

桥模式

内容:

将一个事物的两个维度(将抽象部分与实现部分)分离,使他们可以独立地变化

角色:

抽象者

细化抽象者

实现者

具体实现者

应用场景:

当事务有两个维度上的表现,两个维度都可能扩展时

优点:

抽象和实现相分离,降低耦合

优秀的扩展能力

缺点:

系统可读性降低

python代码实现:

from abc import ABCMeta, abstractmethod


# 抽象者,茶
# 需要先输入一种水果
class Tea(metaclass=ABCMeta):
    def __init__(self, fruits):
        self.fruits = fruits

    @abstractmethod
    def drink(self):
        pass


# 实现者,水果
class Fruits(metaclass=ABCMeta):
    @abstractmethod
    def make(self, tea):
        pass


# 具体抽象者
class BlackTea(Tea):
    name = "红茶"

    def drink(self):
        self.fruits.make(self)


class GreenTea(Tea):
    name = "绿茶"

    def drink(self):
        self.fruits.make(self)


class OolongTea(Tea):
    name = "乌龙茶"

    def drink(self):
        self.fruits.make(self)


class Lemon(Fruits):
    def make(self, tea):
        print(f"来一杯吧!柠檬{
      
      tea.name}")


class Orange(Fruits):
    def make(self, tea):
        print(f"来一杯吧!橙子{
      
      tea.name}")


if __name__ == "__main__":
    tea1 = BlackTea(Lemon())
    tea1.drink()

    tea2 = GreenTea(Orange())
    tea2.drink()

    tea3 = OolongTea(Orange())
    tea3.drink()

# 输出    
==================
来一杯吧!柠檬红茶
来一杯吧!橙子绿茶
来一杯吧!橙子乌龙茶

猜你喜欢

转载自blog.csdn.net/weixin_45455015/article/details/127553177
今日推荐