public abstract class Handler {
protected Handler successor;
public abstract void handlerRequest(String condition);
protected Handler getSuccessor() {
return successor;
}
public void setSuccessor(Handler successor) {
this.successor = successor;
}
}
public class ConcreteHandler1 extends Handler{
@Override
public void handlerRequest(String condition) {
// TODO Auto-generated method stub
// 如果是自己的責(zé)任,就自己處理,負(fù)責(zé)傳給下家處理
if(condition.equals("ConcreteHandler1")){
System.out.println( "ConcreteHandler1 handled ");
return ;
}else{
System.out.println( "ConcreteHandler1 passed ");
getSuccessor().handlerRequest(condition);
}
}
public class ConcreteHandler2 extends Handler{
@Override
public void handlerRequest(String condition) {
// TODO Auto-generated method stub
// 如果是自己的責(zé)任,就自己處理,負(fù)責(zé)傳給下家處理
if(condition.equals("ConcreteHandler2")){
System.out.println( "ConcreteHandler2 handled ");
return ;
}else{
System.out.println( "ConcreteHandler2 passed ");
getSuccessor().handlerRequest(condition);
}
}
}
public class ConcreteHandlerN extends Handler{
@Override
public void handlerRequest(String condition) {
// TODO Auto-generated method stub
System.out.println( "ConcreteHandlerN handled");
}
}
//測(cè)試
Handler handler1 = new ConcreteHandler1();
Handler handler2 = new ConcreteHandler2();
Handler handlern = new ConcreteHandlerN();
//鏈起來(lái)
handler1.setSuccessor(handler2);
handler2.setSuccessor(handlern);
//假設(shè)這個(gè)請(qǐng)求是ConcreteHandler2的責(zé)任
handler1.handlerRequest("ConcreteHandler2");
public static void main(String[] args) {
// TODO Auto-generated method stub
Handler handler1 = new ConcreteHandler1();
Handler handler2 = new ConcreteHandler2();
Handler handlern = new ConcreteHandlerN();
//鏈起來(lái)
handler1.setSuccessor(handler2);
handler2.setSuccessor(handlern);
//假設(shè)這個(gè)請(qǐng)求是ConcreteHandler2的責(zé)任
handler1.handlerRequest("ConcreteHandler2");
}
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-744469.html
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-744469.html
到了這里,關(guān)于責(zé)任鏈模式(Chain of Responsibility)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!