zoukankan      html  css  js  c++  java
  • 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);
    			}
    		}
    	}
    }
    

      

  • 相关阅读:
    JavaWeb学习笔记--2.3内置对象
    JavaWeb学习笔记--2.jsp指令元素、动作元素、内置对象
    JavaWeb学习笔记--Servlet代码集
    JavaWeb学习笔记--HttpServletRequest、HttpServletResponse对象常用方法
    JavaWeb学习笔记-使用HttpSession对象跟踪会话
    Servlet接收JSP参数乱码问题解决办法
    Java笔记--File,FileInputStream,FileReader,InputStreamReader,BufferedReader 的使用和区别
    Java笔记--java一行一行写入或读取数据
    Java笔记--Java的List、Iterator用法
    Scala学习笔记--List、ListBuffer
  • 原文地址:https://www.cnblogs.com/qiangini/p/15580433.html
Copyright © 2011-2022 走看看