关闭

Python设计模式(十四)【策略模式】

标签: python设计模式实例
723人阅读 评论(0) 收藏 举报
分类:

生活充满了选择,而生活的态度就是一切。

"""
策略模式
"""
import types

class StrategyExample:
    def __init__(self, func=None):
        self.name = '策略例子0'
        if func is not None:
            """给实例绑定方法用的,不会影响到其他实例"""
            self.execute = types.MethodType(func, self)

    def execute(self):
        print(self.name)

def execute_replacement1(self):
    print(self.name + ' 从执行1')


def execute_replacement2(self):
    print(self.name + ' 从执行2')


if __name__ == '__main__':
    strat0 = StrategyExample()

    strat1 = StrategyExample(execute_replacement1)
    strat1.name = '策略例子1'

    strat2 = StrategyExample(execute_replacement2)
    strat2.name = '策略例子2'

    strat0.execute()
    strat1.execute()
    strat2.execute()

运行结果如图:

这里写图片描述

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:888102次
    • 积分:12933
    • 等级:
    • 排名:第1096名
    • 原创:307篇
    • 转载:434篇
    • 译文:56篇
    • 评论:93条
    博客专栏
    文章分类
    打赏
    如果你觉得我的文章对您有用,请随意打赏。 微信 支付宝