2021/11/25

public class Client
{
	public static void main(String args[])
	{
		Leader objDirector,objManager,objGeneralManager,objViceGeneralManager;
		
		objDirector=new Director("王明");
		objManager=new Manager("赵强");
		objGeneralManager=new GeneralManager("李波");
		objViceGeneralManager=new ViceGeneralManager("肖红");
		
		objDirector.setSuccessor(objManager);
		objManager.setSuccessor(objViceGeneralManager);
		objViceGeneralManager.setSuccessor(objGeneralManager);
			
		LeaveRequest lr1=new LeaveRequest("张三",5000);
		objDirector.handleRequest(lr1);
			
		LeaveRequest lr2=new LeaveRequest("李四",20000);
		objDirector.handleRequest(lr2);
		
		LeaveRequest lr3=new LeaveRequest("王五",80000);
		objDirector.handleRequest(lr3);
						
		LeaveRequest lr4=new LeaveRequest("赵六",140000);
		objDirector.handleRequest(lr4);			
	}
}

  

public class Director extends Leader
{
	public Director(String name)
	{
		super(name);
	}
	public void handleRequest(LeaveRequest request)
	{
		if(request.getLeaveDays()<10000)
		{
			System.out.println("主任" + name + "审批" + request.getLeaveName() + "的购物清单,金额为" + request.getLeaveDays() + "元。");
		}
		else
		{
			if(this.successor!=null)
			{
				this.successor.handleRequest(request);
			}
		}
	}
}

  

public class GeneralManager extends Leader
{
	public GeneralManager(String name)
	{
		super(name);
	}
	
	public void handleRequest(LeaveRequest request)
	{
		if(request.getLeaveDays()<200000)
		{
			System.out.println("总经理" + name + "审批" + request.getLeaveName() + "的购物清单,金额为" + request.getLeaveDays() + "元。");
		}
		else
		{
			System.out.println("总经理没有权限批准");
		}
	}
}

  

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(LeaveRequest request);
}

  

public class LeaveRequest
{
	private String leaveName;
	private int leaveDays;
	
	public LeaveRequest(String leaveName,int leaveDays)
	{
		this.leaveName=leaveName;
		this.leaveDays=leaveDays;
	}
	
	public void setLeaveName(String leaveName) {
		this.leaveName = leaveName; 
	}

	public void setLeaveDays(int leaveDays) {
		this.leaveDays = leaveDays; 
	}

	public String getLeaveName() {
		return (this.leaveName); 
	}

	public int getLeaveDays() {
		return (this.leaveDays); 
	}	
}

  

public class Manager extends Leader
{
	public Manager(String name)
	{
		super(name);
	}
	public void handleRequest(LeaveRequest request)
	{
		if(request.getLeaveDays()<50000)
		{
			System.out.println("部门经理" + name + "审批" + request.getLeaveName() + "的购物清单,金额为" + request.getLeaveDays() + "元。");
		}
		else
		{
			if(this.successor!=null)
			{
				this.successor.handleRequest(request);
			}
		}
	}
}

  

public class ViceGeneralManager extends Leader
{
	public ViceGeneralManager(String name)
	{
		super(name);
	}
	public void handleRequest(LeaveRequest request)
	{
		if(request.getLeaveDays()<100000)
		{
			System.out.println("副总经理" + name + "审批" + request.getLeaveName() + "的购物清单,金额为" + request.getLeaveDays() + "元。");
		}
		else
		{
			if(this.successor!=null)
			{
				this.successor.handleRequest(request);
			}
		}
	}
}

  

posted @ 2021-11-25 21:04  小强哥in  阅读(11)  评论(0编辑  收藏  举报