大B:责任链模式是一种对象的行为模式。你知道它都涉及到哪些角色吗?
小A:“嘿嘿!不知道喔!”
大B:“没关系,我告诉你。所涉及到的角色如下:第一、抽象处理者角色、定义出一个处理请求的接口;假如需要,接口可以定义出一个方法,以返回对下家的引用。”
大B:“在图中还给出了一个客户端,以便可以更清楚地看到责任链模式是怎样应用的。你能写出抽象处理者的示意性源代码吗?”
小A:“写不出来喔!还请师兄教我。”
大B:“好。”
抽象处理者的示意性源代码:
public class Handler
{
public void handleRequest()
{
if(successor!=null)
{
successor。handleRequest();
}
//Write your code here
}
public void setSuccessor(Handler successor)
{
this。successor=successor;
}
public Handler getSuccessor()
{
return successor;
}
private Handler successor;
}
代码清单8、抽象处理者的源代码。
具体处理者的示意性源代码:
public class ConcreteHandler extends Handler
{
public void handleRequest()
{
if(getSuccessor()!=null)
{
getSuccessor()。handleRequest();
}
if(successor!=null)
{
successor。handleRequest();
}
//Write your code here
}
}
代码清单9、具体处理者的源代码。
客户端的源代码如下:
public class Client
{
private Handler handler;
public static void main(String[]args)
{
handler=new ConcreteHandler();
//write your code here
}
}
代码清单10、客户端的源代码。