首页 > 其他分享 >随笔-责任链模式

随笔-责任链模式

时间:2023-09-30 14:33:06浏览次数:39  
标签:getNext setNext request 模式 next 责任 Handler handleRequest 随笔

将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。

abstract class Handler
{
    private Handler next;
    public void setNext(Handler next)
    {
        this.next=next; 
    }
    public Handler getNext()
    { 
        return next; 
    }   
    //处理请求的方法
    public abstract void handleRequest(String request);       
}
 Handler handler1=new ConcreteHandler1(); 
 Handler handler2=new ConcreteHandler2(); 
 handler1.setNext(handler2); 

 如果第一个没有处理,因为责任链已经设计好了

getNext().handleRequest(request);  
  if(request.equals("one")) {
       //   
  }
  else{
      if(getNext()!=null){
            getNext().handleRequest(request);             
       } else{
            System.out.println("没有人处理该请求!");
       }
  } 
当然也可以在else里面设计责任链
System.out.println("金额大于2000,部门经理无权审批,移交给总经理!");
setNext(new Manager());
return getNext().handleRequest(fee);
 

标签:getNext,setNext,request,模式,next,责任,Handler,handleRequest,随笔
From: https://www.cnblogs.com/leafstar/p/17737803.html

相关文章

  • 设计模式-组合模式
    (目录)设计模式-组合模式什么是组合模式设计模式?组合模式是一种结构型设计模式,它允许将对象组合成树状结构来表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。在组合模式中,有两种主要类型的对象:叶子对象和组合对象。叶子对象是没有子对象......
  • 系统进入救援模式进行修复
    现象: 解决方案:(1)#journalctl查看原因   (2)可以看出是内存溢出导致进出救援模式,重启解决#/sbin/reboot-f (3)如果出现mountfailed的现象,就需要进行 umount-l/dev/sdX或者  umount-f/dev/sdX(4)检查文件系统xfs_repair-n/dev/sdX(5)修复文......
  • 设计模式
    模式是指从某个具体的形式中得到的一种抽象,在特殊的非任意性的环境中,该形式不断地重复出现。软件架构的模式描述了一个出现在特定设计语境中的特殊的再现设计问题,并为它的解决方案提供了一个经过充分验证的通用图示。解决方案图示通过描述其组成构件及其责任和相互关系以及它们的协......
  • java——mysql随笔
         索引简介:                                                                 1 ......
  • 鸿蒙DevEco studio的安装(随笔)
    首先就是按照官方文档正常安装但是我在在安装界面出现这个错误execute'ohpminstall'failed.而我在文档中没有找到解决办法,最后在一个博客里的解决办法就是重新安装(博客地址:https://www.cnblogs.com/mayism123/p/17636872.html)而重新安装的时候参考官方文档:https://develo......
  • 命令模式
    命令模式案例引入要求1.买了一套智能家电,有照明灯,风扇,冰箱,洗衣机,我们只要在手机上安装app就可以控制这些家电工作。2.这些智能家电来自不同的厂家,不想针对每一种家电都安装一个app,分别控制,希望使用一个app就可以控制全部的智能家电。3.要实现,一个app控制所有智能家电的需求,......
  • 编程基础与Python的开发模式
    1.3.1程序设计的概念1.逻辑设计(1)过程的起点是分析并确定需求。(2)从现实中抽象。(3)抽象过后是设计算法。2.程序设计(1)选择编程语言。(2)设计数据结构。(3)设计业务逻辑。(4)选择开发模式。1.3.2程序的生命周期(1)硬件部分。(2)操作系统。(3)汇编语言。(4)高级语言。(5)应......
  • 应该也算策略模式吧
    调用方自主选择策略方式:如食堂打饭,有很多窗口供选择,用户只需要去想买的窗口刷卡打饭即可三个关键角色:上下文信息类(Context):用于存放和执行需要使用的具体策略类以及客户端调用的逻辑。抽象策略类(Strategy):定义策略的共有方法。具体策略类(StrategyA等):实现抽象策略类定义的共有......
  • 我的第一篇博客园随笔
    终于盼望着国庆假期的到来了,晚上闲来无事,打算完成以下老师的小任务--完成自己的博客设计。可能是CSDN的大众流行,加上现在程序员网站如雨后春笋般的出现,再加上个人博客页面越来越多,我对“博客园”的印象其实并不是很深刻,当我现在敲这篇文章,会有一种在2007年用诺基亚手机发短信......
  • 软件设计模式系列之十八——迭代器模式
    1模式的定义迭代器模式是一种行为型设计模式,它允许客户端逐个访问一个聚合对象中的元素,而不暴露该对象的内部表示。迭代器模式提供了一种统一的方式来遍历不同类型的集合,使客户端代码更加简洁和可复用。2举例说明为了更好地理解迭代器模式,让我们考虑一个简单的例子:一个图书馆......