zoukankan      html  css  js  c++  java
  • unity设计模式-----责任链模式

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

    例如:

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

    责任链模式的结构图

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

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

    2.下一步让谁做

    主要涉及两个角色:

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

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

    责任链模式的使用场景

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

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

    责任链模式的优缺点:

    优点:

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

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

    缺点:

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

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

  • 相关阅读:
    PathInfo模式,thinkPHP模板与控制之间的关系
    thinkPHP无法显示验证码问题
    jQuery.validate 中文API手册
    MySQL 常用函数
    MySQL插入、更新与删除数据 习题
    MySQL查询语句练习题
    在windows下SphinxCoreseek的配置安装与测试
    Ubuntu上Coreseek+PHP的安装
    Ubuntu下安装CoreSeek
    Ubuntu更新命令
  • 原文地址:https://www.cnblogs.com/qipei/p/10033900.html
Copyright © 2011-2022 走看看