当前位置:首页 > 设计模式 > 正文内容

职责链模式

canca19年前 (2007-03-26)设计模式545
//职责链模式
//CopyRight(C) CAnca software Office.2006
//Created by CAnca.
public class ResponsibilityMode{
 public static void main(String[] args){
  Handler handle1 = new ConcreteHandler1();
  Handler handle2 = new ConcreteHandler2();
  Handler handle3 = new ConcreteHandler3();
  handle1.setSuccessor(handle2);
  handle2.setSuccessor(handle3);
  int[] num = new int[]{23,1,34,0,15,78,20,-1,88,25,30,28};
  for(int i = 0 ; i < num.length ; i++){
   handle1.HandleRequest(num[i]);
  }
 }
}

//Handler
abstract class Handler{
 protected Handler successor;
 
 public void setSuccessor(Handler successor){
  this.successor = successor;
 }
 
 abstract void HandleRequest(int request);
}
class ConcreteHandler1 extends Handler{
 public void HandleRequest(int request){
  if(request >= 0 && request <= 10){
   System.out.println(this.getClass().getName() + " handled request " + request);
  }else if(this.successor != null){
   successor.HandleRequest(request);
  }
 }
}
class ConcreteHandler2 extends Handler{
 public void HandleRequest(int request){
  if(request >= 11 && request <= 20){
   System.out.println(this.getClass().getName() + " handled request " + request);
  }else if(this.successor != null){
   successor.HandleRequest(request);
  }
 }
}
class ConcreteHandler3 extends Handler{
 public void HandleRequest(int request){
  if(request >= 21 && request <= 30){
   System.out.println(this.getClass().getName() + " handled request " + request);
  }else if(this.successor != null){
   successor.HandleRequest(request);
  }
 }
}


扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/649.html

标签: 设计模式
分享给朋友:

“职责链模式” 的相关文章

抽象工厂模式

//抽象工厂模式//Copyright CAnca Software office//Created by CAnca.2006public class AbstractFactory{ public static void main(String[] args){  ...

单例模式

//CopyRight CAnca Software Office. 2006//Created by CAnca. import java.util.*; public class singletonMode{ public static void main(String[] args)...

建造者模式

//建造者模式//CopyRight(C)CAnca Software Office.//Created by CAnca. import java.util.*; public class BuilderMode{ public static void main(String[] arg...

原型模式

//原型模式//CopyRight(C) CAnca Software Office.2006//Created by CAnca. public class PrototypeMode{ public static void main(String[] args){  ...

代理模式

//代理模式--真实例子//CopyRight(C)CAnca Software Office.2006//Created by CAnca.   public class ProxyMode_RealWorld{     public static void...

桥接模式

//桥接模式//CopyRight(C) CAnca Software Office 2006.//Created by CAnca. import java.util.*; public class BridgeMode{ public static void main(String[]...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。