责任链模式
责任链模式让处理请求的对象形成一条链,链中总有一个对象来处理请求。
代码如下:
先写处理对象:
public abstract class Hander { public Hander next; public void setHander(Hander next) { this.next=next; } public abstract void work(int request); }
再写具体实现:
public class HanderA extends Hander { public void work(int request) { if(request<10) { System.out.println("HanderA works."); } else { next.work(request); } } } public class HanderB extends Hander{ public void work(int request) { if(request<20) { System.out.println("HanderB works."); } else { next.work(request); } } } public class HanderC extends Hander{ public void work(int request) { System.out.println("HanderC works."); } }
最后测试,让三个实现形成链:
public class test { public static void main(String[] args) { Hander a=new HanderA(); Hander b=new HanderB(); Hander c=new HanderC(); a.setHander(b); b.setHander(c); for(int i=0;i<30;i++) { a.work(i); } } }
比如一个大于二十的数,就会经过HanderA,HanderB,最后在HanderC进行处理。