今天就跟大家聊聊有关怎么在Python中使用职责链模式,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
职责链模式(Chain Of Responsibility):使多个对象都有机会处理请求,从而避免发送者和接收者的耦合关系。将对象连成链并沿着这条链传递请求直到被处理
下面是一个设计模式的demo:
#!/usr/bin/envpython #-*-coding:utf-8-*- __author__='Andy' """ 大话设计模式 设计模式——职责链模式 职责链模式(ChainOfResponsibility):使多个对象都有机会处理请求,从而避免发送者和接收者的耦合关系。将对象连成链并沿着这条链传递请求直到被处理 (在调用时要定义好哪个实例是哪个实例的职责上一级)请求沿着定义的链条传递给可以处理请求的对象 """ #抽象一个处理类 classHandle(object): def__init__(self): self.successor='' defsetsuccessor(self,successor): self.successor=successor defhandle_request(self,request): pass #具体处理者类1 classConcreteHandle1(Handle): defhandle_request(self,request): ifrequest>0andrequest<=10: print"ConcreteHandle1处理请求",request else: self.successor.handle_request(request) #具体处理者类2 classConcreteHandle2(Handle): defhandle_request(self,request): ifrequest>10andrequest<=20: print"ConcreteHandle2处理请求",request else: self.successor.handle_request(request) if__name__=="__main__": c1=ConcreteHandle1() c2=ConcreteHandle2() c1.setsuccessor(c2) foriinrange(6,15,2): c1.handle_request(i)
运行结果:
上面类的设计如下图:
接收者和发送者都没有对方的明确信息,且链中的对象自己并不知道链的结构,职责链可简化对象的相互连接,他们仅需保持一个指向后继者的引用,而不需要保持他所有候选接收者的引用,大大降低了耦合度,可以随时增加或修改处理一个请求的结构
看完上述内容,你们对怎么在Python中使用职责链模式有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注恰卡编程网行业资讯频道,感谢大家的支持。
Python中怎么动态声明变量赋值
这篇文章将为大家详细讲解有关Python中怎么动态声明变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
python中变量的存储原理是什么
Python中怎么引用传递变量赋值
这篇文章将为大家详细讲解有关Python中怎么引用传递变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
python中怎么获取程序执行文件路径
python中怎么获取程序执行文件路径,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的...
Python中如何获取文件系统的使用率
Python中如何获取文件系统的使用率,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴...
Python中怎么获取文件的创建和修改时间
这篇文章将为大家详细讲解有关Python中怎么获取文件的创建和修改时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读...
python中怎么获取依赖包
今天就跟大家聊聊有关python中怎么获取依赖包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据...
python怎么实现批量文件加密功能
python中怎么实现threading线程同步
小编给大家分享一下python中怎么实现threading线程同步,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!...
python下thread模块创建线程的方法
本篇内容介绍了“python下thread模块创建线程的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来...
用户名
密码
记住登录状态 忘记密码?
邮箱
确认密码
我已阅读并同意 用户协议