unity设计模式—–责任链模式

  • Post author:
  • Post category:其他


责任链模式的定义:责任链模式指的是–某个请求需要多个对象进行处理,从而避免请求的发送者和接收之间的耦合关系,将这些对象连成一条链子,并沿着这条链子传递请求,直到有对象处理它为止

例如:

从生活中的例子可以发现,某个请求可能需要几个人的审批,即使技术经理审批完了,还需要上一级的审批.

责任链模式的结构图

即有A,B,C,D四个工人,他们都具备两个能力

1.自己工作的拧螺丝方法

2.下一步让谁做

主要涉及两个角色:

1>抽象处理者角色(Handler):定义出一个处理请求的接口,这个接口通常由接口或抽象类来实现

2>具体处理者角色(ConcreteHandler):具体处理者接受到请求后,可以选择将该请求处理掉,或者将请求传给下一个处理者,因此,每个具体处理者需要保存下一个处理者的引用.以便把请求传递下去

责任链模式的使用场景

1>一个系统的审批需要多个对象才能完成处理的情况下,例如请假系统

2>代码中存在多个if–else语句的情况下,此时可以考录使用责任链模式进行代码进行重构

责任链模式的优缺点:

优点:

(1)降低了请求的发送者和接收者之间的耦合

(2)把多个条件判定分散到各个处理类中,使得代码更加清晰,责任更加明确

缺点:

(1)在找到正确的处理对象之前,所有的条件判定都要执行一遍,当责任链过长时,可能会引起性能问题

(2)可能导致某个请求不被处理

转载于:https://www.cnblogs.com/qipei/p/10033900.html