zoukankan      html  css  js  c++  java
  • 责任链

    1 意图:多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。

               将这些对象连成一条链,沿着这条链传递该请求,知道有一个对象处理它为止。

    2 动机:要沿链请求,并保证接收者是隐式的,每个链上的对象都有一只的处理请求和访问链上后继者的接口。

    3 适用性:

       .有多个对象可以处理一个请求,哪个对象处理请求运行时刻自动确定。

       .在不明确指定接收者的情况下,向多个对象中的一个提交请求。

       .可处理一个请求的对象集合应被动态指定

    4 参与者:

       Handler:定义一个处理请求的接口,实现后继链(可选)

       ConcreteHandler:处理它所负责的请求,可访问它的后继者。

                                如果可处理该请求,就处理之。否则将该请求转发给它的后继者。

       Client:向链上的处理这对象提交请求

    5 协作:

       当客户提交一个请求时,请求沿链传递直至有一个ConcreteHandler对象负责处理它。

    6 效果:

      1)降低耦合度

      2)增强给对象指派职责的灵活性

      3)不保证被接受

    7 实现:

      1)实现后继者,两种办法:

          . 定义新的链接

          .使用已有的链接

      2)连接后继者

      3)表示请求

    8 相关模式:

       责任链与Composite一起使用

  • 相关阅读:
    面向对象1 继承与接口
    简易版爬虫(豆瓣)
    调用模块与包
    正则表达式2 以及configparser模块,subprocess模块简单介绍
    正则表达式(re模块)
    sys,logging,json模块
    常用模块(time,os,random,hashlib)
    内置函数与匿名函数
    day 19 yeild的表达式 面向过程 内置函数
    mysql中写存储过程加定时任务
  • 原文地址:https://www.cnblogs.com/criticalsection/p/5689457.html
Copyright © 2011-2022 走看看