大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、客戶端的源代碼。