Python_策略模式

策略模式 它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。
–摘自《大话设计模式》

通俗讲,一位军师,他晓得36计,他会给不同的武将授予外表相同的锦囊,但锦囊里的计策是不一样的,要根据不同的武将上报的情况,制定不同的计策,并将计策写好,放入锦囊中。对于武将而言,他只需要上报情况,获得锦囊,在合适的时机,打开锦囊,执行计策。这时候,就需要用到策略模式,每个锦囊就代表一个策略。

定义一个抽象类 Strategy,军师脑瓜子里首先要有计策的构思,至于用哪个看武将汇报的情况(在这里我们暂且一种情况只用一个计策)

class Strategy:
    """抽象类"""
    def do_operation(self, num1, num2):
        pass

具体的三十六计的设计,要继承抽象类

class Strategy01(Strategy):
    def do_operation(self):
        print("瞒天过海")


class Strategy02(Strategy):
    def do_operation(self):
        print("围魏救赵")

...

class Strategy36(Strategy):
    def do_operation(self):
        print("走为上策")

军师计策类 Context(实在想不到好的英文单词~~~勒)的设计

class Context:
    strategy = Strategy()

    def __init__(self, strategy):   # 构造方法
        self.strategy = strategy

    def write_strategy(self):
        self.strategy.do_operation()
        print("将计策写好")

具体实现

context02 = Context(Strategy02())
print(context02.execute_strategy())

context21 = Context(Strategy21())
print(context21.execute_strategy())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值