You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Feb 2, 2019. It is now read-only.
设计模式-行为型模式-责任链模式
定义
将请求沿着链传递,然后直到对象处理即可。
UML图
代码
基本的责任链
代码逻辑如上,只处理1,2,3情况,其余的情况都不处理。
责任链
总结
责任链模式核心在处理流,让对象在类之间流动,直到合适进行对象处理,并把下一个设置为空。
写法,当然就是新建几个处理器类,然后要处理的对象,处理类之间用next指向下一个,然后把处理的对象传入进去,如果找到合适的处理器,进行处理,并将下一个设置为空,完成责任链。
其中,几个处理器类可以抽象出一个抽象类,并把对象进行封装成一个类,以上为上方代码的设计思路。
应用
开发一个电商网站,支付过500元定金的用户,收到100元优惠卷,200元收到50元,没有支付过的,进入普通模式购买。
如果不用职责链,需要写入一大堆if语句。
将if语句拆分,使用职责链,将处理器类抽象出来,然后将购买的用户传入处理器,然后如果处理完成,下一个设置为空,返回结果。
另外一个应用,文件上传,使用的也是职责链。
The text was updated successfully, but these errors were encountered: