设计模式(Python语言)----模板方法模式(python语言格式框架)

网友投稿 318 2022-08-23


设计模式(Python语言)----模板方法模式(python语言格式框架)

更多信息请参考 【设计模式】

模板方法模式内容

定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤

模板方法模式中的角色

抽象类(Abstract Class):定义抽象的原子操作(钩子操作),实现一个模板方法作为算法的骨架具体类(Concrete Class):实现原子操作

模板方法模式使用场景

一次性实现一个算法的不变的部分各个子类中的公共行为应该被提取出来并集中到一个公共父类中以避免代码重复控制子类扩展

模板方法模式实例

代码如下:

import timefrom abc import ABCMeta,abstractmethodclass Window(metaclass=ABCMeta): @abstractmethod def start(self): pass @abstractmethod def repaint(self): pass @abstractmethod def stop(self): pass def run(self): self.start() while True: try: self.repaint() time.sleep(1) except KeyboardInterrupt: break self.stop()class MyWindow(Window): def __init__(self,msg): self.msg=msg def start(self): print("窗口开始运行...") def stop(self): print("窗口停止运行...") def repaint(self): print(self.msg)if __name__=="__main__": MyWindow("我的第一个窗口").run()

执行结果如下:

$ python demo.py窗口开始运行...我的第一个窗口我的第一个窗口我的第一个窗口我的第一个窗口我的第一个窗口窗口停止运行...


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:设计模式(Python语言)----观察者模式(python观察者模式的作用)
下一篇:springboot2.6.4集成swagger3.0遇到的坑及解决方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~