首页 > 其他分享 >10.20

10.20

时间:2024-11-20 10:08:24浏览次数:1  
标签:10.20 Request request Handler handleRequest nextHandler public

责任链模式

责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它将请求的发送者和接收者解耦,使多个对象都有机会处理这个请求。每个接收者都包含对下一个接收者的引用,形成一个链条,请求沿着这个链条依次传递,直到有一个接收者处理它。

下面是一个简单的Java代码示例,演示了责任链模式的实现:

// 请求类
class Request {
    private String content;

    public Request(String content) {
        this.content = content;
    }

    public String getContent() {
        return content;
    }
}

// 处理者接口
interface Handler {
    void setNext(Handler nextHandler);
    void handleRequest(Request request);
}

// 具体处理者A
class ConcreteHandlerA implements Handler {
    private Handler nextHandler;

    public void setNext(Handler nextHandler) {
        this.nextHandler = nextHandler;
    }

    public void handleRequest(Request request) {
        if (request.getContent().equals("A")) {
            System.out.println("ConcreteHandlerA handles the request.");
        } else if (nextHandler != null) {
            nextHandler.handleRequest(request);
        }
    }
}

// 具体处理者B
class ConcreteHandlerB implements Handler {
    private Handler nextHandler;

    public void setNext(Handler nextHandler) {
        this.nextHandler = nextHandler;
    }

    public void handleRequest(Request request) {
        if (request.getContent().equals("B")) {
            System.out.println("ConcreteHandlerB handles the request.");
        } else if (nextHandler != null) {
            nextHandler.handleRequest(request);
        }
    }
}

// 客户端代码
public class ChainOfResponsibilityPatternExample {
    public static void main(String[] args) {
        Handler handlerA = new ConcreteHandlerA();
        Handler handlerB = new ConcreteHandlerB();

        handlerA.setNext(handlerB);

        Request request1 = new Request("A");
        handlerA.handleRequest(request1);

        Request request2 = new Request("B");
        handlerA.handleRequest(request2);

        Request request3 = new Request("C");
        handlerA.handleRequest(request3);
    }
}
 

标签:10.20,Request,request,Handler,handleRequest,nextHandler,public
From: https://www.cnblogs.com/luoqingci/p/18556267

相关文章

  • 2024.10.20
    (1)导入jar包版(2)将下载好的jar包放到工程文件的lib文件夹下面(3)开始连接1、加载数据库的驱动Class.forName("com.mysql.jdbc.Driver");变红就抛出或者用try...catch环绕如果,MySQL的jar包版本高于8,那么就得改成Class.forName("com.mysql.cj.jdbc.Driver");2、声明数据库地址......
  • 2024.10.20心有错做题笔记
    赛时:\(60+50+0+0\)A.bookstore题意:\(m\)套书,\(n\)本书。要求选出两个交集为空的套书的集合,使得两集合中出现的书的种类相同。见到二元组,显然考虑连边。然后发现若有偶环必定有解,01交替染色即可。然后发现剩下来没环和奇环都无法成功。难点在于判偶环。显然可以搞出搜索树......
  • 2022.10.20
    练习情况P3601签到题有意思的题目,先筛出\(10^6\)的质数,每个质数对\(l\)~\(r\)的贡献。每个质数在\(l\)~\(r\)下界是\((\dfrac{(l-1)}{P}+1)P\)可以用分块思想理解Code:for(LLi=1;prime[i]*prime[i]<=r;i++){for(LLj=((l-1)/prime[i]+1)*prime[i];j<=......
  • 24.10.20
    P3601不互质的数个数就是\(n-\varphi(n)\)。\(\displaystyle\varphi(n)=n\prod\frac{p_i-1}{p_i}\)。直接用小于\(\sqrt{r}\)的素数求欧拉函数。所有数一起求。rep(i,l,r)phi[i-l]=val[i-l]=i;rep(i,1,pcnt) for(LLj=(l+prm[i]-1)/prm[i]......
  • 2024.10.20 杂题
    P11208『STA-R8』轮回疯狂只执行操作一就是逆序对的个数,统计对于每一个\(a_i\)的逆序对个数为\(b_i\),然后模拟执行删除操作,如果删除操作比换位操作更优就更新答案。复杂度\(O(n\logn)\)record将最小的删除可以等价成往里加最大的数,倒着模拟即可。至于操作一,每次往数......
  • 10.14-10.20 总结
    联考题解:https://www.cnblogs.com/british-union/p/liankao.html如果忽略挂分,这周打的还可以。但是问题是挂了不少分导致实际得分远不如期望得分。做题:做了几道ProjectEuler,有一道没想出来:588,638,457,307。P10353:群论题AGC012F尝试枚举一下前几个的限制,发现限制就是在\([i,......
  • C#/.NET/.NET Core技术前沿周刊 | 第 10 期(2024年10.14-10.20)
    前言C#/.NET/.NETCore技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NETCore领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。欢迎投稿、推荐或自荐优质文章、项目、学习资源等。每......
  • 10.20
    修改了四则运算中的部分错误Grade3QuestionGenerator类点击查看代码packageqixun;importjava.util.Random;publicclassGrade3QuestionGeneratorextendsGrade2QuestionGenerator{publicGrade3QuestionGenerator(){this.operandCount=4;//操作数......
  • 10.19-10.20 练习
    其实是复健。上一次碰电脑是期末考试完(7月),上上次是noip(2023年11月)。1.P9752[CSP-S2023]密码锁__record要求:语文没问题,会基础语法,有生活常识。枚状态,判断。几乎没有复杂度要求。Code#include<bits/stdc++.h>usingnamespacestd;constintN=1e6+10;intn,ans;int......
  • 10.20 闲话
    从初中开始的很长很长一段时间,我的所有OI相关账号的签名都是"JustGoForOI!"或"CJOIerJustGoForOI!"这两句。这大概反映了我当初对于OI的态度是不思考训练的意义,不去想未来的方向,不理会文化课或者或者人际上的一些琐事,全心全意地按照教练的要求去做就行了。至于当......