某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);
}
@Override
public 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);
}
@Override
public 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);
}
@Override
public 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);
}
}
运行结果截图:
求关注,求关注,求关注!!!
可以直接问我要代码