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)为请求创建了一个接收者对象的链.这种模式给予请求的类型,对请求的发送者和接收者进行解耦.这种类型的设计模式属于行 ...
随机推荐
- 【bzoj1690】[Usaco2007 Dec]奶牛的旅行 分数规划+Spfa
题目描述 作为对奶牛们辛勤工作的回报,Farmer John决定带她们去附近的大城市玩一天.旅行的前夜,奶牛们在兴奋地讨论如何最好地享受这难得的闲暇. 很幸运地,奶牛们找到了一张详细的城市地图,上面标 ...
- 【Luogu】P1419寻找段落(单调队列)
题目链接 不知为何状态突然奇差无比,按说这题本来应该是水题的,但不仅不会做,还比着题解爆零五次 二分平均值(想到了),单调队列维护最大区间和(想到了但是不会,???为什么我不会???) #includ ...
- BZOJ4916 神犇和蒟蒻 【欧拉函数 + 杜教筛】
题目 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; 输入格式 请你读入一个整数N;1<=N<=1E9,A.B模1E9+7; 输出格式 请你输出一个整数A=\sum ...
- NOIP2017整数 【线段树】
题目 题目背景 在人类智慧的山巅,有着一台字长为10485761048576 位(此数字与解题无关)的超级计算机,著名理论计算机科 学家P博士正用它进行各种研究.不幸的是,这天台风切断了电力系统,超级 ...
- 视音频数据处理入门:RGB、YUV像素数据处理【转】
转自:http://blog.csdn.net/leixiaohua1020/article/details/50534150 ==================================== ...
- x86 下的 struct 變數 member 擺放位置
2 int main() 3 { 4 struct _test { 5 int a; 6 int b; 7 int c; 8 }; 9 10 struct _test test; 11 test.a ...
- hdu 4503(数学,概率)
湫湫系列故事——植树节 Time Limit: 1000/500 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
- LeetCode OJ--ZigZag Conversion
https://oj.leetcode.com/problems/zigzag-conversion/ 将字符串Z形字排列后,再重新一行一行输出. 可以找到每一行字符位置的规律,然后填充进去. 敲代码 ...
- react-native 判断是不是IPhone X
import { Platform, Dimensions } from 'react-native'; // iPhoneX const X_WIDTH = 375; const X_HEIGHT ...
- luogu P2056 采花
题目描述 萧芸斓是 Z国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花.花园足够大,容纳了 n 朵花,花有 c 种颜色(用整数 1-c 表示) ,且花是排成 ...