Java设计模式_行为型_责任链模式_差旅报销如此简单
2015-12-25 09:53
507 查看
转载请注明出处:/article/11557483.html
本文出自:【梁敬明的博客】
本文出自:【梁敬明的博客】
1.如何实现级级审批
公司最近准备制定一项新制度,需要逐级进行审批。是的,现在仅仅知道逐级进行审批,至于这项新的制度用在什么业务上合适,现在还不确定,那么每一层需要做什么工作就更加不得而知。但是,现在可以确定的是,当前一级审批不通过,是不会再交由上级进行审批的。那么,现在开始来设计一套这样的系统。public abstract class Handler { // 继承者 private Handler successor; public Handler getSuccessor() { return successor; } public void setSuccessor(Handler successor) { this.successor = successor; } // 当前处理不通过或者没有下一级时,不再将请求交由下一级 public void handleRequest(String data) { boolean flag = handleData(data); if (successor != null && flag) { successor.handleRequest(data); } } // 做什么事情就交给具体的人去做吧! public abstract boolean handleData(String data); }
2.每个人都应这样做
对我们员工小弟来说,在公司做点事情总得让大哥们知道,至于大哥们怎么做就是他们的事情啦,我们只要关心结果就行。小公司一枚,一般有事情基本都是经理、财务和老板来决定是否同意。public class FinancialHandler extends Handler { @Override public boolean handleData(String data) { System.out.println("财务处理"+data); return true; } } public class ManagerHandler extends Handler { @Override public boolean handleData(String data) { System.out.println("经理处理"+data); return true; } } public class BOSSHandler extends Handler { @Override public boolean handleData(String data) { System.out.println("老板处理"+data); return true; } }
3.那么现在开始报销
公司里面出差当然是难免的,出差的时候先从公司预支差旅经费,重点是后面的,归来的时候首先要把差旅费给报了,当然不报也没事,除非自己钱多。那么差旅费该如何报呢?当然是现在找经理审批下,经理觉得没问题,再去找财务,拿到财务看到报销单据都符合规定,最后去找老板签字吧!当然,老板签完字就算报销成功啦。那么,现在开始来报销差旅费吧!public class Employee { public static void main(String[] args) { Handler leader = new ManagerHandler(); Handler manager = new FinancialHandler(); Handler boss = new BOSSHandler(); // 设置请假流程 leader.setSuccessor(manager); manager.setSuccessor(boss); // 先由组长来处理 leader.handleRequest("差旅报销单"); } }
相关文章推荐
- Java enum的用法详解
- jdk 动态代理 数据连接池
- Java线程(二):线程同步synchronized和volatile
- javaWeb Cache技术――OSCache(转-全)
- Java并发库(三):传统线程互斥技术
- Java并发库(二):传统定时器技术回顾
- JAVA 基础之Integer
- 单例模式
- quartz 定时器cron表达式全解析
- quartz 定时器cron表达式全解析
- java 中字符串比较equals()和equalsIgnoreCase()的区别
- java实现附件预览(openoffice+swftools+flexpaper)
- Java并发库(一):传统线程技术回顾
- Eclipse Java颜色设置
- [javase学习笔记]-7.5 构造函数需要注意的几个细节
- java中的缓存技术该如何实现
- JAVA缓存技术
- 配置Java jdk(备忘)
- eclipse 打开其他项目的jar源码 乱码解决
- 在eclipse中调试服务器中的项目