ios 责任链模式
2017-12-19 本文已影响12人
CoderLWG
1.责任链模式:避免将一个请求的发送者与接收者耦合在一起,让多个对象都有机会处理请求,将接收请求的对象连接成一条链,并且沿着这条链传递请求,直到有一个对象能够处理它为止,也称职责链模式。
如下图所示,采购人员要向主任采购一批货物,如果货物在2万元以内,则直接由主任审批决定,如果货物价值在2万到10万,则主任提交给副董事长来审批,如果货物价值大于10万,副董事长在提交给董事长审批,在这个过程中,采购人员只需要提交一次,后面的审批流程不需要管,这就是责任链模式。[图片上传失败...(image-2a53f6-1513672866824)]
在审批过程中,任何一个能对象能响应请求就会返回一个过程对象。[图片上传失败...(image-5986a6-1513672866824)]
UML图如下所示:[图片上传失败...(image-80a4a1-1513672866824)]客户端发起一个请求,抽象类Handler中引用一个自身类型的属性successor,有一个方法handleRequest,我们需要继承抽象类,在子类中实现相关方法。