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