首页 > 其他分享 >9月15日总结

9月15日总结

时间:2023-09-21 13:00:12浏览次数:41  
标签:总结 15 对象 next 责任 链上 处理器 接收

责任链模式作为常用的设计模式而被大家熟知和使用。本文介绍责任链的常见实现方式,并结合开源框架如Dubbo、Sentinel等进行延伸探讨。
一、责任链介绍

在GoF 的《设计模式》一书中对责任链模定义的:将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止或者所有接收对象处理一遍。

用通俗的话解释在责任链模式中,多个处理器(接收对象)依次处理同一个请求。一个请求先经过 A 处理器处理,然后再把请求传递给 B 处理器,B 处理器处理完后再传递给 C 处理器,以此类推,形成一个链条。链条上的每个处理器各自承担各自的处理职责,所以叫作责任链模式。

责任链模式有效地降低了发送和接收者之间的耦合度,增强了系统的可扩展性。在责任链的模式下不仅能够针对单个处理器对象进行定制升级(每个处理器对象关注各自的任务),而且能够对整个责任链的处理器对象的顺序的调整以及增删。

本文约定:责任链上的接收对象统一称为处理器;本文中介绍的责任链属于GOF定义中责任链的变种即责任链上的所有处理器都会参与任务的处理。
二、责任链实现

责任链模式有多种实现方式,从驱动责任链上处理器方式的角度可以分类两类,即责任链驱动 和 责任链处理器自驱动。
2.1 处理器自驱动

// 1、定义抽象类
public abstract class AbstractHandler {
protected Handler next = null;

// 绑定处理器
public void setSuccessor(Handler next) {
this.next = next;
}

// 处理器执行操作并驱动下一个处理器
public abstract void handle();
}

// 2、定义处理器A

标签:总结,15,对象,next,责任,链上,处理器,接收
From: https://www.cnblogs.com/lmyy/p/17719710.html

相关文章

  • 9月11日总结
    慢SQL原因分析之索引失效现象最近收到一个慢sql工单,慢sql大概是这样:“selectxxxfromtabelwheretype=1”。咦,type字段明明有索引啊,为啥是慢sql呢?原因通过执行explain,发现实际上数据库执行了全表扫描,从而被系统判定为慢sql。这时有一定开发经验的同事会说:“字段区分度......
  • 每日总结01
    刚开学的时候配置了虚拟机中的hadoop、zookeeper、hbase。在当时还可以使用,但是就在昨天居然不能用了,hadoop、zookeeper、hbase都可以正常使用,但是就是无法连接hbase,于是开始重新配置环境、重新配置虚拟机中的hadoop、zookeeper、hbase。具体出现什么问题不明确,怀疑是强制开关机导......
  • 线程间共享数据-各种锁(总结)
    std::mutex#include<mutex>#include<list>std::mutexsome_mutex;std::list<int>mylist;voidfunc(intvalue){some_mutex.lock();//加锁mylist.push_back(value);some_mutex.unlock();//解锁}std::lock_guard......
  • 数组变异方法和非变异方法的总结
    区别:1.操作数组的方法中,分为变异方法和非变异方法。2.其中,变异方法意味着会改变原数组,而非变异方法则只会返回一个新数组,不会修改原始数组数组变异方法:push()//数组尾部追加一个元素pop()//数组尾部弹出一个元素shift()//数组头部弹出一个元素unshift()//数组头部插入一个......
  • Redis漏洞总结--未授权--沙箱绕过--(CNVD-2015-07557)&&(CNVD-2019-21763)&&(CVE-2022
    Redis未授权--沙箱绕过--(CNVD-2015-07557)&&(CNVD-2019-21763)&&(CVE-2022-0543)环境复现采用Vulfocus靶场进行环境复现,官网docker搭建有问题,具体搭建教程参考vulfocus不能同步的解决方法/vulfocus同步失败CNVD-2015-07557未授权访问影响版本Redis<=5.0.5漏洞探测使用端......
  • 每日总结
    今日收获学会了有关hive的数据清洗;也算是重温了有关hive的相关知识;背了单词!!做了几道软考的题目,嗯,选择题好难;明天预计继续我的背单词旅程;继续学习hive的相关知识去!软考难,还是得学!!和友友一起报名了程序设计大赛,加油加油!!!还报名了英语六级、软考、网络安全知识竞赛...好忙......
  • 今日总结
    今天学习了hadoop伪分布式3.2伪分布式运行模式3.2.1启动HDFS并运行MapReduce程序配置集群,修改Hadoop的配置文件(/hadoop/hadoop-2.7.7/etc/hadoop目录下)①core-site.xml<configuration><!--指定HDFS中NameNode的地址--><property><name>fs.defaultFS</name>......
  • 23.9.15
    今天完成了java对话框的验证码设计importjavax.swing.*;importjava.awt.*;importjava.awt.event.ActionListener;importjava.util.Random;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;publicclassMain{publicstaticvoidmain(String[......
  • 每日总结
    今天又测试了一下hbase的安装hbase的启动没有任何问题但是phoenix的安装还是不行,已经按照步骤一步步的安装但是每次到启动的前一句就会卡住着了各种各样的解决方法还是不行,有同学问题和我一样但是用他的就能成功但是我的就不行,莫名其妙哦。然后今天复习了软考的基础知识,将前面......
  • 2023.9.20——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午上课,下午做任务。我了解到的知识点:1.了解了关于模型训练的一些知识和注意事项;2.了解了关于软件构造的一些知识,明日计划:1.上课;2.比赛;......