[Python模式]策略模式

时间:2023-02-02 22:25:11

策略模式

定义了算法族,分别封装起来,让它们之间可以互相替换。此模式让算法的变化独立于使用算法的客户。

作为动态语言,Python实现策略模式非常容易,只要所有算法提供相同的函数即可。

import os

class Script:
def __init__(self, cmd):
self._cmd = cmd def run_by(self, runner):
runner.run(self._cmd) class Runner:
def run(self, cmd):
os.system(cmd) class MockRunner:
def run(self, cmd):
print "Run", cmd if __name__ == "__main__":
s = Script("echo test")
s.run_by(Runner())
s.run_by(MockRunner())