第45章

bookmark

大B:責任鏈模式是一種對象的行爲模式。你知道它都涉及到哪些角色嗎?

小A:“嘿嘿!不知道喔!”

大B:“沒關係,我告訴你。所涉及到的角色如下:第一、抽象處理者角色、定義出一個處理請求的接口;假如需要,接口可以定義出一個方法,以返回對下家的引用。”

大B:“在圖中還給出了一個客戶端,以便可以更清楚地看到責任鏈模式是怎樣應用的。你能寫出抽象處理者的示意性源代碼嗎?”

小A:“寫不出來喔!還請師兄教我。”

大B:“好。”

抽象處理者的示意性源代碼:

publicclassHandler

{

publicvoidhandleRequest()

{

if(successor!=null)

{

successor.handleRequest();

}

//Writeyourcodehere

}

publicvoidsetSuccessor(Handlersuccessor)

{

this.successor=successor;

}

publicHandlergetSuccessor()

{

returnsuccessor;

}

privateHandlersuccessor;

}

代碼清單8、抽象處理者的源代碼。

具體處理者的示意性源代碼:

publicclassConcreteHandlerextendsHandler

{

publicvoidhandleRequest()

{

if(getSuccessor()!=null)

{

getSuccessor().handleRequest();

}

if(successor!=null)

{

successor.handleRequest();

}

//Writeyourcodehere

}

}

代碼清單9、具體處理者的源代碼。

客戶端的源代碼如下:

publicclassClient

{

privateHandlerhandler;

publicstaticvoidmain(String[]args)

{

handler=newConcreteHandler();

//writeyourcodehere

}

}

代碼清單10、客戶端的源代碼。

第74章第200章第220章第166章第173章第196章第150章第47章第208章第181章第135章第78章第157章第176章第182章第210章第217章第204章第178章第66章第102章第228章第98章第182章第132章第186章第191章第89章第221章第151章第154章第215章第156章第190章第209章第214章第51章第10章第128章第180章第2章第5章第43章第225章第134章第95章第189章第74章第128章第32章第11章第103章第139章第75章第179章第89章第23章第187章第164章第84章第211章第114章第207章第218章第84章第28章第28章第57章第176章第187章第207章第114章第164章第52章第195章第107章第123章第222章第216章第92章第139章第142章第115章第52章第124章第2章第123章第171章第188章第83章第209章第120章第15章第77章第117章第223章第5章第227章第98章第163章
第74章第200章第220章第166章第173章第196章第150章第47章第208章第181章第135章第78章第157章第176章第182章第210章第217章第204章第178章第66章第102章第228章第98章第182章第132章第186章第191章第89章第221章第151章第154章第215章第156章第190章第209章第214章第51章第10章第128章第180章第2章第5章第43章第225章第134章第95章第189章第74章第128章第32章第11章第103章第139章第75章第179章第89章第23章第187章第164章第84章第211章第114章第207章第218章第84章第28章第28章第57章第176章第187章第207章第114章第164章第52章第195章第107章第123章第222章第216章第92章第139章第142章第115章第52章第124章第2章第123章第171章第188章第83章第209章第120章第15章第77章第117章第223章第5章第227章第98章第163章