审批假条(职责链模式实战)

编程入门 行业动态 更新时间:2024-10-26 06:35:32

审批<a href=https://www.elefans.com/category/jswz/34/1745803.html style=假条(职责链模式实战)"/>

审批假条(职责链模式实战)

某OA系统需要提供一个假条审批的模块,如果员工请假天数小于3天,主任可以审批该假条;如果员工请假天数大于等于3天,小于10天,经理可以审批;如果员工请假天数大于等于10天,小于30天,总经理可以审批;如果超过30天,总经理也不能审批,提示相应的拒绝信息。

类图:

代码:
抽象处理者Leader类:

public abstract class Leader
{protected String name;protected Leader successor;public Leader(String name){this.name=name;}public void setSuccessor(Leader successor){this.successor=successor;}public abstract void handleRequest(Request request);
}

具体处理者:
1.Director(主任)类:

public class Director extends Leader{public Director(String name) {super(name);}@Overridepublic void handleRequest(Request request) {if(request.getDay()<3){System.out.println(name+"批准"+request.getName()+request.getDay()+"天的假");}else{this.successor.handleRequest(request);}}
}

2.Manager(经理)类:

public class Manager extends Leader{public Manager(String name) {super(name);}@Overridepublic void handleRequest(Request request) {if(request.getDay()>=3 && request.getDay()<10){System.out.println(name+"批准"+request.getName()+request.getDay()+"天的假");}else{this.successor.handleRequest(request);}}
}

3.GeManage(总经理)类:

public class GeManager extends Leader{public GeManager(String name) {super(name);}@Overridepublic void handleRequest(Request request) {if(request.getDay()>=10 && request.getDay()<30){System.out.println(name+"批准"+request.getName()+request.getDay()+"天的假");}else{System.out.println(request.getName()+"想要请"+request.getDay()+"天的假,不给批准!");}}
}

Request类:

public class Request {public String name;public int day;public Request(String name, int day) {this.name = name;this.day = day;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getDay() {return day;}public void setDay(int day) {this.day = day;}
}

Client(客户)类:

public class Client {public static void main(String[] args) {Leader director,manager,gemanager;Request r1,r2,r3,r4;director =new Director("张主任");manager=new Manager("李经理");gemanager=new GeManager("王总经理");director.setSuccessor(manager);manager.setSuccessor(gemanager);r1=new Request("张三",2);r2=new Request("李四",5);r3=new Request("王五",20);r4=new Request("小明",40);director.handleRequest(r1);director.handleRequest(r2);director.handleRequest(r3);director.handleRequest(r4);}}

运行结果截图:
求关注,求关注,求关注!!!
可以直接问我要代码

更多推荐

审批假条(职责链模式实战)

本文发布于:2024-03-07 17:06:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1718395.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:假条   实战   职责   模式

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!