0
点赞
收藏
分享

微信扫一扫

4.15_strategy_行为型模式:策略模式

墨春 2022-02-16 阅读 62
from abc import ABCMeta, abstractmethod


class Strategy(metaclass=ABCMeta):
    """抽象策略 (Strategy)"""

    @abstractmethod
    def execute(self, data):
        pass


class FastStrategy(Strategy):
    def execute(self, data):
        print(f'用较快的策略处理 {data}')


class SlowStrategy(Strategy):
    def execute(self, data):
        print(f'用较慢的策略处理 {data}')


class Context(object):
    def __init__(self, strategy, data):
        self.strategy = strategy
        self.data = data

    def set_strategy(self, strategy):
        self.strategy = strategy

    def do_strategy(self):
        self.strategy.execute(self.data)


# --- Client ---
data = '[...]'
s = FastStrategy()
c = Context(s, data)
c.do_strategy()

 

举报

相关推荐

0 条评论