zoukankan      html  css  js  c++  java
  • 设计模式 责任链模式

    先写一个接口

    
    public abstract class Handler {
    
    	protected Handler successor;
    	public void SetSuccessor(Handler successor)
    	{
    		this.successor=successor;
    	}
    	 abstract void HandleRequest(int request);
    }
    
    

    再写三个具体的处理器

    
    public class ConcreteHandler1 extends Handler{
    
    	@Override
    	void HandleRequest(int request) {
    		// TODO Auto-generated method stub
    		if(request>=0&&request<10)
    		{
    			System.out.println(this.getClass()+
    					"处理请求"+request);
    		}
    		else if(successor!=null)
    		{
    			successor.HandleRequest(request);
    		}
    	}
    
    }
    
    
    
    public class ConcreteHandler2 extends Handler{
    
    	@Override
    	void HandleRequest(int request) {
    		// TODO Auto-generated method stub
    		if(request>=10&&request<20)
    		{
    			System.out.println(this.getClass()+
    					"处理请求"+request);
    		}
    		else if(successor!=null)
    		{
    			successor.HandleRequest(request);
    		}
    	}
    
    	
    }
    
    
    
    
    public class ConcreteHandler3 extends Handler{
    
    	@Override
    	void HandleRequest(int request) {
    		// TODO Auto-generated method stub
    		if(request>=20&&request<30)
    		{
    			System.out.println(this.getClass()+
    					"处理请求"+request);
    		}
    		else if(successor!=null)
    		{
    			successor.HandleRequest(request);
    		}
    	}
    
    	
    }
    
    

    再写测试类

    
    public class Program {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Handler handler1=new ConcreteHandler1();
    		Handler handler2=new ConcreteHandler2();
    		Handler handler3=new ConcreteHandler3();
    		handler1.SetSuccessor(handler2);
    		handler2.SetSuccessor(handler3);
    		
    		int[] requests ={2,5,14,22,18,3,27,20};
    		
    		for (int request : requests) {
    			handler1.HandleRequest(request);
    		}
    	}
    
    }
    
    
  • 相关阅读:
    selenium-java,定位并操作frame和iframe内的元素
    多线程-java
    Mysql基础
    webpack文件处理
    webpack调试必备配置之SourceMap介绍
    webpack提取分离css单独打包
    webpack编译less和sass
    webpack中loader在处理HTML中引入图片
    webpack用loader加载css
    使用配置文件webpack.config.js打包文件
  • 原文地址:https://www.cnblogs.com/yufenghou/p/6055693.html
Copyright © 2011-2022 走看看