Python设计模式:模版方法模式
模版方法模式指 定义一个模版框架,将一些具体行为放到子类取实现,模版方法使得子类可以不改变算法结构即可重新定义该算法的某些特定行为。
模版方法就是提供一个代码复用平台,有时候我们遇到一系列步骤需要执行,从更高层次看这个过程是相同的,只是有些具体步骤的实现可能不同,这时候就可以用模版方法。
例如每个公司员工的一天工作流程都是相似的,只是实际的工作内容不同,这时候就可以创建一个员工模版定义一天工作流程的框架,具体工作内容在子类实现。
① 员工基类
员工基类 相当于一个员工模版,定义了一个员工的通用行为 ,例如打卡上班,午休,打卡下班等。
import abc
class Employee(metaclass=abc.ABCMeta):
def __init__(self, name):
self.name = name
def clock_in(self):
print(f"{self.name} 打卡上班")
@abc.abstractmethod
def work(self):
pass
def noon_break(self):
print(f"{self.name} 正在午休")
def clock_out(self):
print(f"{self.name} 打卡下班")
def daily_work(self):
self.clock_in()
self.work()
self.noon_break()
self.work()
self.clock_out()
② 具体员工
具体员工继承员工基类, 定义了属于自己的特定行为 。
class Analyst(Employee):
def work(self):
print(f"{self.name} 正在分析行情...")
class Trader(Employee):
def work(self):
print(f"{self.name} 正在执行交易...")
③ 员工开始自己的日常工作
Analyst('Chris').daily_work()
Trader('Ryan').daily_work()
移动端设备除iPad Pro外,其它移动设备仅能阅读基础的文本文字。
建议使用PC或笔记本电脑,浏览器使用Chrome或FireFox进行浏览,以开启左侧互动实验区来提升学习效率,推荐使用的分辨率为1920x1080或更高。
我们坚信最好的学习是参与其中这一理念,并致力成为中文互联网上体验更好的学练一体的IT技术学习交流平台。
您可加QQ群:575806994,一起学习交流技术,反馈网站使用中遇到问题。
内容、课程、广告等相关合作请扫描右侧二维码添加好友。
建议使用PC或笔记本电脑,浏览器使用Chrome或FireFox进行浏览,以开启左侧互动实验区来提升学习效率,推荐使用的分辨率为1920x1080或更高。
我们坚信最好的学习是参与其中这一理念,并致力成为中文互联网上体验更好的学练一体的IT技术学习交流平台。

您可加QQ群:575806994,一起学习交流技术,反馈网站使用中遇到问题。
内容、课程、广告等相关合作请扫描右侧二维码添加好友。
狐狸教程 Copyright 2021