大B:“首先,链结构的由来值得指出的是,责任链模式并不创建出责任链。责任链的创建必须有系统的其它部分完成。责任链模式降低了请求的发送端和接收端之间的耦合,使多个对象都有机会处理这个请求。一个链可以是一条线,一个树,也可以是一个环。链的拓扑结构可以是单连通的或多连通的,责任链模式并不指定责任链的拓扑结构。但是责任链模式要求在同一个时间里,命令只可以被传给一个下家(或被处理掉);而不可以传给多于一个下家。”
在下面的责任链是系统已有的树结构的一部分,责任链是一个树结构的一部分。图中有阴影的对象给出了一个可能的命令传播路径。
B:“责任链的成员往往是一个更大的结构的一部分。比如我们刚才说的《红楼梦》中击鼓传花的游戏中,所有的成员都是贾府的成员。如果责任链的成员不存在,那么为了使用责任链模式,就必须创建它们;责任链的具体处理者对象可以是同一个具体处理者类的实例。在Java的1.0版的AWT事件处理模型里,责任链便是视窗上的部件的容器等级结构。”