12.设计模式--责任链模式(Chain of Responsibility模式)

1.定义

Chain of Responsibility模式名为责任链模式,是一种行为型模型,使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

首先看看什么叫推卸责任,我们去公司申请财务报销,当找到财务时填写报销单后,被告知金额太大只能找财务主管批,于是我们拿着资料去找财务主管,财务主管说金额还是太大只能找老板批。这里相当于将责任传递下去即推卸责任。原因是每个财务能审批的最大金额是不一样的。

通过上面的报销例子,我们可以看到自己因为报销找了很多人,这些人相当于一个链条,即第一个不能解决那么找第二个(财务主管),第二个不能解决找第三个(老板)直到找到到底该谁来进行审批即谁来处理。

2.责任链模式结构图

Financial作为财务部门的抽象,而FinancialStaff是财务普通员工,普通员工只能审批金额为0-2000元的资金,FinancialLeader是财务部门负责人只能审批金额为0-10000元的资金,而CEO只能审批0-50000元的资金。如果报销金额超过50000元,那么剩余的金额就需要自己承担。这里CEO这个人员实际上例子举得不是特别好,因为实际上CEO并不属于财务部门所以不应该继承Financial。

你可能感兴趣的:(深入理解Java设计模式,责任链模式,java)