您的位置:首页 > 编程语言 > Java开发

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("差旅报销单");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: