责任链模式
来源:互联网 发布:山东黄金历史交易数据 编辑:程序博客网 时间:2024/06/01 10:49
目的:形成一个链式关系,更加体系化。
举例:员工请假,首先需要向部门经理提交请假条,如果请假天数大,那么就需要部门经理的领导来处理,这就是责任链模式
/** * 员工类 * @author tiger * */public class Employee {private String name;private int days;private String reason;public Employee(String name, int days, String reason) {super();this.name = name;this.days = days;this.reason = reason;}<span style="white-space:pre"></span>//以下是get/set方法}
/** * 领导抽象类 * @author tiger * */public abstract class Leader {protected String name;protected Leader nextLeader;public void setLeader(Leader nextLeader) {this.nextLeader = nextLeader;}public Leader(String name) {super();this.name = name;}public abstract void handleRequest(Employee e);}
/** * 部门领导 * @author tiger * */public class ApartmentManager extends Leader {public ApartmentManager(String name) {super(name);}@Overridepublic void handleRequest(Employee e) {if(e.getDays()<3){System.out.println("部门经理批准");}else{if(nextLeader != null){System.out.println(this.name+"权限不够,请求领导处理");nextLeader.handleRequest(e);}}}}
/** * 总经理 * @author tiger * */public class Manager extends Leader {public Manager(String name) {super(name);}@Overridepublic void handleRequest(Employee e) {if(e.getDays()<10){System.out.println("总经理批准");}else{System.out.println("驳回");}}}
测试类
public class Demo {public static void main(String[] args) {Employee e = new Employee("Tom",9, "无");Leader apartment = new ApartmentManager("张三");Leader manager = new Manager("李四");//建立责任链apartment.setLeader(manager);//处理请求apartment.handleRequest(e);}}实际应用:java的异常处理机制,层层处理
servlet的过滤器
struts2的拦截器等
0 0
- 责任链模式
- 深入浅出责任链模式
- 责任链模式
- 责任链模式
- 深入浅出责任链模式
- 责任链模式(一)
- 责任链模式(二)
- 责任链模式(三)
- 责任链模式
- java责任链模式
- 责任链模式
- 责任链模式
- 责任链模式
- 责任链模式
- 责任链模式
- c++ 责任链模式
- java责任链模式
- 责任链模式
- 临时表空间管理
- 我的c学习:if控制语句 求一元二次方程的根
- VxWorks中logMsg与printf的区别
- Golang Web编程的Get和Post请求发送与解析
- 多重背包二进制优化模板分析
- 责任链模式
- 深入理解Java虚拟机--垃圾回收算法
- XML_JSON
- 一个程序学会python的流程控制
- php之字符串
- Android进程管理之taskinfo模型
- 一个很赞的RecyclerView Adapter辅助类
- 响应式网页必备——media媒体查询
- 实现一个简易的IoC框架(上)(此篇与Spring.NET无关,为自己手写IoC框架)