Java与设计模式-责任链模式
责任链模式属于行为型设计模式之中的一个,怎么理解责任链?责任链是能够理解成数个对象首尾连接而成,每个节点就是一个对象。每个对象相应不同的处理逻辑,直至有一个对象响应处理请求结束。这一种模式成为责任链模式。
生活中能够找到责任链模式的原型吗?这样的样例非常多。比方你要去买房子。首先是销售人员(对象1)接待你。你说想要百分之3的折扣,没问题。这时销售人员就有打百分之三折扣的权限,销售人员(对象1)进行处理。这时来了一个土豪。说要买10套,要百分之五的折扣。销售人员(对象1)没有百分之五折扣的权限。必需要想上级领导,销售总监申请,销售总监(对象2)批复了申请。这时国民老公小王来了,小王说百分之十把楼盘全买了。这时销售总监(对象2)也没那么大的权限了。要向CEO申请批复。
也就是说每个客户(Client)都由销售人员接待,客户提出不同的权限,由销售人员交给不同的对象进行递次处理。客户并不关心哪个对象处理了他的请求,这样就减少了请求发送者和接受者之间的耦合关系。
以下我们通过一个出差差旅费批准为例,实现以下责任链模式。首先定义一个抽象的领导类:
package com.test.demo; public abstract class Leader {
protected Leader nextHandler;//上一级领导 public final void handlerRequest(int money){
if(money<=limit() ){//小于限制,能够批复
handler(money);
}else{
if(nextHandler!=null){
nextHandler.handlerRequest(money);//交给上一级领导处理
}
}
}
/*
* 批款限额
*/
public abstract int limit();
/*
* 批款
*/
public abstract void handler(int money); }
这是一个抽象类。以下通过几个类继承它,首先是小组长类:
package com.test.demo; public class GroupLeader extends Leader { public int limit() {
return 1000;//说明小组长有1000元的批复权限
} public void handler(int money) {
System.out.println("小组长批复了"+money); } }
主管类:
package com.test.demo; public class Director extends Leader { @Override
public int limit() {
return 5000;
} @Override
public void handler(int money) {
System.out.println("主管批复了"+money); } }
经理类:
package com.test.demo; public class Manager extends Leader { @Override
public int limit() {
return 10000;
} @Override
public void handler(int money) {
System.out.println("经理批复了"+money); } }
老板类:
package com.test.demo; public class CEO extends Leader { @Override
public int limit() {
return Integer.MAX_VALUE;
} @Override
public void handler(int money) {
System.out.println("CEO批复了"+money);
} }
老板类无上限。以下来定义一个职员小张申请差旅报销:
package com.test.demo; public class XiaoZhang { public static void main(String[] args) {
GroupLeader groupLeader=new GroupLeader();
Director director=new Director();
Manager manager=new Manager();
CEO ceo=new CEO();
groupLeader.nextHandler=director;
director.nextHandler=manager;
manager.nextHandler=ceo; groupLeader.handlerRequest(50000);
groupLeader.handlerRequest(500);
groupLeader.handlerRequest(5000); } }
小张一共像小组长申请了三笔,这时执行实比例如以下:
aaarticlea/png;base64,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" alt="" />
我们能够看到不同的款项由不同的对象进行了处理。小张并不关心谁处理的,他仅仅要找小组长就可以。这就是责任链模式的特点。
喜欢的朋友关注,谢谢
Java与设计模式-责任链模式的更多相关文章
- java 设计模式 -- 责任链模式
设计模式 – 责任链模式 介绍: 责任链模式是一种动态行为模式,有多个对象,每一个对象分别拥有其下家的引用.连起来形成一条链.待处理对象则传到此链上,在此链进行传递,且待处理对象并不知道此会被链上的哪 ...
- 【设计模式】Java设计模式 - 责任链模式
[设计模式]Java设计模式 - 责任链模式 不断学习才是王道 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 一个有梦有戏的人 @怒放吧德德 目录 [设计模式]Java设计模式 - 责 ...
- 浅谈Python设计模式 -- 责任链模式
声明:本系列文章主要参考<精通Python设计模式>一书,并且参考一些资料,结合自己的一些看法来总结而来. 之前在最开始就聊了Python设计模式有三种,其中关于创建型和结构型设计模式基本 ...
- 我的Java设计模式-责任链模式
今天来说说程序员小猿和产品就关于需求发生的故事.前不久,小猿收到了产品的需求. 产品经理:小猿,为了迎合大众屌丝用户的口味,我们要放一张图,要露点的. 小猿:......露点?你大爷的,让身为正义与纯 ...
- Java设计模式-责任链模式
提出问题: 最初接触责任链模式就是在struts2中,在当时学的时候看了一眼,大概知道了原理,最近在复习,模拟struts2,说是模拟只是大体模拟了struts2的工作流程,很多东西都是写死的,只是为 ...
- Java设计模式の责任链模式
在阎宏博士的<JAVA与模式>一书中开头是这样描述责任链(Chain of Responsibility)模式的: 责任链模式是一种对象的行为模式.在责任链模式里,很多对象由每一个对象对其 ...
- Java设计模式-责任链模式(Chain of Responsibility)
接下来我们将要谈谈责任链模式,有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求.但是发出者并不清楚到底最终那个对象会处理该请求,所以,责任 ...
- Java设计模式—责任链模式
责任链模式的定义: 使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止. 责任链模式的重点是在"链& ...
- php 23种设计模式 - 责任链模式
责任链模式 责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链.这种模式给予请求的类型,对请求的发送者和接收者进行解耦.这种类型的设计模式属于行 ...
随机推荐
- 简单实用jstl实现代码编写
package com.ceshi; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.s ...
- kb-01-d<poj3279>--深搜变种,二进制优化;
poj--3279 题意: 给n*m的矩阵,0 1组成,每次翻转一个格子可以将上下左右的五个节点翻转,求,把所有的格子翻转成0:输出每个个字的翻转次数:最少字数: 做法: 从上到下,第一行翻转的情况确 ...
- HUST——1106xor的难题之二(异或树状数组单点修改和区间查询)
1106: xor的难题之二 时间限制: 2 Sec 内存限制: 128 MB 提交: 8 解决: 3 题目描述 上次Alex学长的问题xor难题很简单吧,现在hkhv学长有个问题想问你们. 他现 ...
- K3Cloud调用存储过程
SQLScriptServiceHelper.GetDataFromStoredProc( this.Context, DatabaseType.Oracle, "/*dialect*/TJ ...
- 【POJ2104】K-th Number(主席树)
题意:有n个数组成的序列,要求维护数据结构支持在线的下列两种操作: 1:单点修改,将第x个数修改成y 2:区间查询,询问从第x个数到第y个之间第K大的数 n<=100000,a[i]<=1 ...
- 【BZOJ1103】大都市meg(DFS序,树状数组)
题意:有一颗树,1号点为根,保证编号小的点深度较小,初始状态每条边都没有被标记,要求实现两个操作在线: A:将连接x,y的边标记 W:查询从1到x的路径上有多少条边未被标记 n<=2*10^5 ...
- linux之Deamon进程创建及其进程exit,_exit,return之间的区别
Dameon进程又被称做守护进程,一般来说他有以下2个特点: 1.生命周期非常长,一旦启动,一般不会终止,直到系统推出,不过dameon进程可以通过stop或者发送信号将其杀死 2.在后台执行,不跟任 ...
- Linux 之 xunsearch
Linux 之 xunsearch 参考教程:[千峰教育] 一.xunsearch简介: 开源免费.高性能.多功能.简单易用的专业全文检索技术方案. 官网(http://xunsearch.com). ...
- js-classList修改class属性
classList定义与用法 1)classList属性返回元素的类名,作为DOMTokenList对象 2)该属性用于在元素中添加,移除及切换css类 3)classList属性是只读的,但可以用a ...
- Codeforces 946 B.Weird Subtraction Process
B. Weird Subtraction Process time limit per test 1 second memory limit per test 256 megabytes inpu ...