您当前位置: 圣才学习网首页 >> IT类 >> Java程序设计

JAVA设计模式之责任链模式

扫码手机阅读
用圣才电子书APP或微信扫一扫,在手机上阅读本文,也可分享给你的朋友。
评论(0
来源:网络 作者:未知
package pattern.chainofresponsibility;
/**
* 责任链模式:Chain of Responsibility
* @version 2009-5-9
* @author Winty(wintys@gmail.com)
*/
public class ChainOfResponsibilityTest{
public static void main(String[] args){
Handler handler1 = new ConcreteHandler1();
Handler handler2 = new ConcreteHandler2();
Handler handler3 = new ConcreteHandler3();
//设置责任链
handler3.setSuccessor(handler2);
handler2.setSuccessor(handler1);
//发送命令
handler3.handleRequest();
}
}
/**
*抽象处理者
*/
abstract class Handler{
protected Handler successor;
public Handler getSuccessor(){
return successor;
}
public void setSuccessor(Handler successor){
this.successor = successor;
}
public abstract void handleRequest();
}
/**
*具体处理者
*/
class ConcreteHandler1 extends Handler{
public void handleRequest(){
if(getSuccessor() != null){
System.out.print("Request passed:from class Concrete1");
System.out.println(" to class" + getSuccessor().getClass().getName());
getSuccessor().handleRequest();
}
else{
System.out.println("Request handled in ConcreteHandler1");
}
}
}
/**
*具体处理者
*/
class ConcreteHandler2  extends Handler{
public void handleRequest(){
if(getSuccessor() != null){
System.out.print("Request passed:from class Concrete2");
System.out.println(" to class " + getSuccessor().getClass().getName());
getSuccessor().handleRequest();
}
else{
System.out.println("Request handled in ConcreteHandler2");
}
}
}
/**
*具体处理者
*/
class ConcreteHandler3  extends Handler{
public void handleRequest(){
if(getSuccessor() != null){
System.out.print("Request passed:from class Concrete3");
System.out.println(" to class " + getSuccessor().getClass().getName());
getSuccessor().handleRequest();
}
else{
System.out.println("Request handled in ConcreteHandler3");
}
}
}
 

小编工资已与此挂钩!一一分钱!求打赏↓ ↓ ↓

如果你喜欢本文章,请赐赏:

已赐赏的人
最新评论(共0条)评论一句