Python 官方文档:入门教程 => 点击学习
目录一、责任链模式二、应用场景三、代码示例一、责任链模式 责任链模式,将多个处理方法连接成一条链条,请求将在这条链条上流动直到该链条中有一个节点可以处理该请求。通常这条链条是一个对象
责任链模式,将多个处理方法连接成一条链条,请求将在这条链条上流动直到该链条中有一个节点可以处理该请求。通常这条链条是一个对象包含对另一个对象的引用而形成链条,每个节点有对请求的条件,当不满足条件将传递给下一个节点处理。
责任链模式有几个要点:
实体角色:
import abc
# 抽象处理者
class Handler(metaclass=abc.ABCMeta):
@abc.abstractmethod
def handle(self, day):
pass
# 具体处理者,作为链条节点之一。
class GeneralManager(Handler):
def handle(self, day):
if day <= 10:
print(f"总经理准假{day}天")
else:
print("休假太长,不予准假!")
# 具体处理者,作为链条节点之一。
class DivisionManager(Handler):
def __init__(self):
self.next = GeneralManager() # 链接到下一级
def handle(self, day):
if day <= 5:
print(f"部门经理准假{day}天")
else:
print("部门经理准假职级不足")
self.next.handle(day)
# 具体处理者,作为链条节点之一。
class ProjectManager(Handler):
def __init__(self):
self.next = DivisionManager() # 链接到下一级
def handle(self, day):
if day <= 3:
print(f"项目经理准假{day}天")
else:
print("项目经理准假职级不足")
self.next.handle(day)
if __name__ == "__main__":
handler = ProjectManager()
handler.handle(4)
到此这篇关于python设计模式行为型责任链模式的文章就介绍到这了,更多相关Python责任链模式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Python设计模式行为型责任链模式
本文链接: https://www.lsjlt.com/news/139231.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0