zoukankan      html  css  js  c++  java
  • 6. 职责链设计模式

    一. 业务场景

    模拟古代妇女的三从四德 : 一个女子出去想逛街 , 出嫁前要向父亲请示 , 出家后要向丈夫请示 , 丈夫身亡 , 向儿子请示
    Women借口代表女儿,妻子或母亲 , Man代表父亲,丈夫或儿子, Woman要向Man请示是否允许自己出街

    这里写图片描述


    public static void main(String[] args){
    	Man father = new Father(); 
    	Man husband = new Husband(); 
    	Man son= new Son(); 
    	father.setNext(husband);  // 客户端自己维护链式结构
    	husband.setNext(son);
    	father.handleMessage(Woman); 
    }
    

    二. 角色

    • 职责链模式定义 : 使多个对象有机会处理请求, 请求会沿着链一直传递下去,知道有类可以处理它
    • 职责链模式重在"链" , 由链上的类处理请求 , 链上的类抽象为Handler, 每个类为具体的ConcreateHandler.
      (1) 抽象类Handler的handleMessage()方法(如Man的HandleMessage()),要判断是否属于自己处理, 处理不了就交给下了个具体的ConcreateHandler
      (2) 抽象类Handler要定义出链的编排方法 : setNext
      (3)每个ConcreateHandler要定义自己的处理级别和具体任务
    • 客户端负责链的组成

    三. 优缺点

    职责链模式使得请求者和矗立着解耦,客户端不用关心谁处理了请求.进行调用代码上的解耦. 也是因为此, 使得调试带来困难,且不宜制造很长的调用链

  • 相关阅读:
    input 正则
    .net ashx Session 未将对象引用到实例
    js 时间和时间对比
    c# Repeater 和 AspNetPager
    c#后台 极光推送到Android 和IOS客户端
    select scope_identity()
    redhat7.4安装git(按照官网从源码安装)
    redhat7.4安装gitlab
    ES6模板字符串
    初次接触webpack
  • 原文地址:https://www.cnblogs.com/72808ljup/p/5181935.html
Copyright © 2011-2022 走看看