主题:请假 加薪(职责链模式)

学习笔记

 

职责链模式的结构 和装饰模式的结构是一样的。

 

 

请求类型

Java代码 复制代码
  1. public class Request {   
  2.        
  3.     private String name;   
  4.     private String requestType;   
  5.     private int number;   
  6.        
  7.        
  8.        
  9.     public String getName() {   
  10.         return name;   
  11.     }   
  12.     public void setName(String name) {   
  13.         this.name = name;   
  14.     }   
  15.     public String getRequestType() {   
  16.         return requestType;   
  17.     }   
  18.     public void setRequestType(String requestType) {   
  19.         this.requestType = requestType;   
  20.     }   
  21.     public int getNumber() {   
  22.         return number;   
  23.     }   
  24.     public void setNumber(int number) {   
  25.         this.number = number;   
  26.     }   
  27.        
  28.        
  29.        
  30. }   
  31.    
public class Request {
	
	private String name;
	private String requestType;
	private int number;
	
	
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getRequestType() {
		return requestType;
	}
	public void setRequestType(String requestType) {
		this.requestType = requestType;
	}
	public int getNumber() {
		return number;
	}
	public void setNumber(int number) {
		this.number = number;
	}
	
	
	
}
 

 管理的抽象类

 

Java代码 复制代码
  1.       
  2. public abstract class Manager {   
  3.        
  4.     protected String name;   
  5.     //管理者的上级   
  6.     protected Manager superior;   
  7.        
  8.     public Manager(String name) {   
  9.         
  10.         this.name=name;   
  11.             
  12.     }   
  13.        
  14.     //设置管理者的上级   
  15.     public void SetSuperior(Manager superior){   
  16.            
  17.         this.superior=superior;   
  18.     }   
  19.     //声请请求   
  20.     abstract public void requestApplications(Request requset);   
  21.        
  22.     public static void main(String[]args){   
  23.            
  24.         CommonManager commonManager =new CommonManager("hyy");   
  25.         GeneralManager generalManager =new GeneralManager("ysen");   
  26.         Majordomo majordomo =new Majordomo("hdx");   
  27.         //设置上下级   
  28.         commonManager.SetSuperior(majordomo);   
  29.         majordomo.SetSuperior(generalManager);   
  30.            
  31.            
  32.         Request request = new  Request();   
  33.         request.setName("ysen");   
  34.         request.setRequestType("加薪");   
  35.         request.setNumber(800);   
  36.         commonManager.requestApplications(request);   
  37.            
  38.     }   
  39.   
  40. }  
   
public abstract class Manager {
	
	protected String name;
	//管理者的上级
    protected Manager superior;
    
	public Manager(String name) {
	 
		this.name=name;
		 
	}
	
	//设置管理者的上级
	public void SetSuperior(Manager superior){
		
		this.superior=superior;
	}
	//声请请求
	abstract public void requestApplications(Request requset);
	
	public static void main(String[]args){
		
		CommonManager commonManager =new CommonManager("hyy");
		GeneralManager generalManager =new GeneralManager("ysen");
		Majordomo majordomo =new Majordomo("hdx");
		//设置上下级
		commonManager.SetSuperior(majordomo);
		majordomo.SetSuperior(generalManager);
		
		
		Request request = new  Request();
		request.setName("ysen");
		request.setRequestType("加薪");
		request.setNumber(800);
		commonManager.requestApplications(request);
		
	}

}

 管理的具体类

 

Java代码 复制代码
  1. //总经理   
  2. public class GeneralManager extends Manager {   
  3.   
  4.     public GeneralManager(String name) {   
  5.         super(name);   
  6.             
  7.     }   
  8.   
  9.     @Override  
  10.     public void requestApplications(Request request) {   
  11.            
  12.         if(request.getRequestType().equals("请假")&&request.getNumber()<=7){   
  13.                 
  14.              System.out.println(request.getName()+request.getRequestType()+request.getNumber()+"被批准" );   
  15.                 
  16.          }else if(request.getRequestType().equals("加薪")&&request.getNumber()<=800){   
  17.                 
  18.              System.out.println(request.getName()+request.getRequestType()+request.getNumber()+"被批准" );   
  19.                    
  20.          }   
  21.          else{   
  22.              if(this.superior!=null){   
  23.                     
  24.                  this.superior.requestApplications(request);   
  25.              }   
  26.                 
  27.                 
  28.          }   
  29.   
  30.     }   
  31.   
  32. }   
  33.   
  34.     
  35.   
  36.     
  37.   
  38. //总监   
  39. public class Majordomo extends Manager {   
  40.   
  41.     public Majordomo(String name) {   
  42.         super(name);   
  43.         
  44.     }   
  45.   
  46.     @Override  
  47.     public void requestApplications(Request request) {   
  48.         
  49.            
  50.      if(request.getRequestType().equals("请假")&&   request.getNumber() <=5){   
  51.                 
  52.              System.out.println(request.getName()+request.getRequestType()+request.getNumber()+"被批准" );   
  53.                 
  54.          }else{   
  55.              if(this.superior!=null){   
  56.                     
  57.                  this.superior.requestApplications(request);   
  58.              }   
  59.                 
  60.                 
  61.          }   
  62.   
  63.     }   
  64.   
  65. }   
  66.   
  67.     
  68.   
  69. //经理   
  70. public class CommonManager extends Manager {   
  71.   
  72.     public CommonManager(String name) {   
  73.         super(name);   
  74.         
  75.     }   
  76.   
  77.     @Override  
  78.     public void requestApplications(Request request) {   
  79.            
  80.          if(request.getRequestType().equals("请假")&& request.getNumber()<=2){   
  81.                 
  82.              System.out.println(request.getName()+request.getRequestType()+request.getNumber()+"被批准" );   
  83.                 
  84.          }else{   
  85.              if(this.superior!=null){   
  86.                     
  87.                  this.superior.requestApplications(request);   
  88.              }   
  89.                 
  90.                 
  91.          }   
  92.   
  93.     }   
  94.   
  95. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值