gpt4 book ai didi

浅析Python 责任链设计模式

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章浅析Python 责任链设计模式由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

定义:

使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求直到有一个对象处理它为止 。

使用场景:

有多个对象可以处理一个请求,哪个对象处理由时间运行时决定。在不明确接受者的情况下,向多个对象中的一个提交一个请求 。

优点:

降低耦合度:一个对象无需知道是其他哪一个对象处理其请求 。

代码例子:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
"""
责任链模式
"""
from abc import abstractmethod, ABCMeta
 
 
class Handler(metaclass = ABCMeta):
   @abstractmethod
   def handler_leave( self , day):
     pass
 
 
# 总经理审批
class GenaralHandler(Handler):
   def handler_leave( self , day):
     if day < = 10 :
       print ( '总经理批准你%s天假,好好去玩吧' % day)
     else :
       print ( '你干脆辞职了吧' )
 
 
# 部门经理审批
class DepartmentHandler(Handler):
   def __init__( self ):
     self .upHandler = GenaralHandler()
 
   def handler_leave( self , day):
     if day < = 7 :
       print ( '部门经理批准你%s天假,好好去玩吧' % day)
     else :
       print ( '你请假超过七天,我无权受理,你去找总经理吧' )
       self .upHandler.handler_leave(day)
 
 
# 项目主管审批
class ProjectHandler(Handler):
   def __init__( self ):
     self .upHandler = DepartmentHandler()
 
   def handler_leave( self , day):
     if day < = 3 :
       print ( '项目主管批准你%s天假,好好去玩吧' % day)
     else :
       print ( '你请假超过三天,我无权受理,你去找部门经理审批吧' )
       self .upHandler.handler_leave(day)
 
 
if __name__ = = '__main__' :
   h = ProjectHandler();
   h.handler_leave( 5 )

输出结果:

你请假超过三天,我无权受理,你去找部门经理审批吧 。

部门经理批准你5天假,好好去玩吧 。

以上就是浅析Python 责任链设计模式的详细内容,更多关于Python 责任链设计模式的资料请关注我其它相关文章! 。

原文链接:https://www.link-nemo.com/u/10025/post/67349 。

最后此篇关于浅析Python 责任链设计模式的文章就讲到这里了,如果你想了解更多关于浅析Python 责任链设计模式的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com