java责任链设计模式(功能链)

1、概述

网上讲述大部分责任链设计模式如下图,将责任链定义为:使多个对象都有机会处理同一个请求(下图中的数据),从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链(下图的A B C),并沿着这条链传递该请求,直到有一个对象处理它为止。

我所讲解的和这个不太一样,网上一般讲的是如果请求(数据)来了,对象A是否能处理?处理不了转为链条的一个对象B去处理,B处理不了则继续往下走,以此类推,并且只要有一个对象可以处理,就不会继续往下走了。比如A能处理,则处理之后就返回。我所讲的应该称为功能链比较合适,它适用的范围更广,大概流程如下:

针对一个请求,有很多处理流程,每一个流程比较独立,但是处理流程比较类似。这还不简单吗?不过我的需求是,系统可能内置了A、B、C三个对象对事件进行处理,假如我现在要对事件增加一个处理逻辑,该怎么办?今天比较晚了,明天继续。。。

原文地址:https://www.cnblogs.com/yefengyu/p/10534353.html

时间: 2024-07-29 12:44:54

java责任链设计模式(功能链)的相关文章

Java设计模式之责任链设计模式

职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将所有处理对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止. ? 请求传递方向:从低级到高级 ? 重点:如何形成这个责任链 ? 特点:发出处理请求的客户端并不知道是系统当中的哪一个对象最终处理这个请求,这样系统的更改可以在不影响客户端的情况下动态地重新组织和分配责任.1. 派生类中都具备的功能(1) 都要设置后继者(一样)(2) 都能实现自己职责范围

【JS设计模式】责任链设计模式的代码示例

责任链设计模式: 在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任. 责任链模式涉及到的角色如下所示:● 抽象处理者(Handler)角色:定义出一个处理请求的接口.如果需要,接口可以定义 出一个方法以设定和返回对下家的引用.这个角色通常由一个Java抽象类或者Java接口实现.上图中Handle

责任链设计模式(过滤器、拦截器)

责任链设计模式(Chain of Responsibility)的应用有:Java Web中的过滤器链.Struts2中的拦截器栈. 先看一个问题: 给定一个字符串“被就业了:),敏感信息,<script>”,对其中的HTML标记和敏感词进行过滤或替换.本文主要以该问题设计方法的演变来讲解责任链设计模式. 第一种设计:没有任何设计模式 设计了一个MsgProcessor类,完成字符串处理的主要工作.MainClass类是本设计中的测试类. 01 02 03 04 05 06 07 08 09

java责任链模式及项目实际运用

1.前言 上次我们认识了java责任链模式的设计,那么接下来将给大家展示责任链模式项目中的实际运用.如何快速搭建责任链模式的项目中运用. 2.简单技术准备 我们要在项目中使用借助这样的几个知识的组合运用,才能更好的诠释. 必备技能:简单注解的定义:Spring拦截器的使用:简答的责任链模式的定义: 拥有以前的准备的知识点的,我们就可以快速搭建责任链来做安全校验了. 3. 场景模拟 场景: 系统中我们需要一些安全校验结构,如登陆校验与角色校验.接下来我们使用责任链模式来开发这个流程化校验. 4.

Java设计模式之职责链设计模式

1.什么是-职责链设计模式 责任链模式是一种对象的行为模式.在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任.Tomcat中的Filter就是使用了责任链模式,创建一个Filter除了要在web.xml文件中做相应配置外,还需要实现javax.servlet.Filter接口. 2.职责链设计模式

PHP责任链设计模式

<?php //责任链设计模式 /** * 每个对象,储存着对自己上级的引用, * 如果自己处理不了,交给上一级. */ class board{ protected $power=1; protected $top='admin'; public function process($lev){ if($lev<=$this->power){ echo "版主删帖"; }else{ $top=new $this->top; $top->process($l

责任链模式 职责链模式 Chain of Responsibility Pattern 行为型 设计模式(十七)

责任链模式(Chain of Responsibility Pattern) 职责链模式 意图 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系 将这些对象连接成一条链,并沿着这条链传递请求,直到有一个对象处理它为止. 责任链模式中,每个对象通过持有对下家的引用而链接起来,形成一条链条,串联起来多个处理对象. 在责任链模式中,请求在链上进行传递,直到链上的某一个对象决定处理此请求. 发出这个请求的客户端程序并不知道到底是哪一个对象具体的处理了请求 这使得系统可以在不影响客户

基于java实现的简单区块链

技术:maven3.0.5 + jdk1.8 概述 区块链是分布式数据存储.点对点传输.共识机制.加密算法等计算机技术的新型应用模式.所谓共识机制是区块链系统中实现不同节点之间建立信任.获取权益的数学算法 . 详细 代码下载:http://www.demodashi.com/demo/14933.html 前言 使用java创建第一个非常基本的区块链 实现一个简单的工作量证明系统即挖矿 创建区块链 区块链就是一串或者是一系列区块的集合,类似于链表的概念,每个区块都指向于后面一个区块,然后顺序的连

设计模式-行为型-职责链设计模式

一.简介 职责链设计模式是属于经典设计模式中行为型设计模式里的一种设计模式.其实这种模式 在现实生活中很多地方出现,比如说: 1.多人打牌: 上家出牌后,出牌请求到达下家,下家出牌后,下下家获得出牌机会, 在一轮后如果无人出牌,则可以从 新下一轮出牌,这样一个场景,其实就是职责链模式的原型. 2.审批流程: 再比如,一个公司的采购单审批流程,如果采购单总价在5万RMB,那么主任审核即可, 如果5-10万RMB 由副董事长审批,10-50万由董事长审批,>=50万则由董事会审批.每一个节点只负责职