描述
有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求
 适用
责任链模式可以实现,在隐瞒客户端的情况下,对系统进行动态的调整
 其他
链接上的请求可以是一条链,可以是一个树,还可以是一个环,模式本身不约束这个,需要我们自己去实现,同时,在一个时刻,命令只允许由一个对象传给另一个对象,而不允许传给多个对象
 UML

 示例
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 
 | interface Handler{
 public void operator();
 }
 
 abstract class AbsHandler{
 private Handler handler;
 public Handler getHandler(){
 return handler;
 }
 public void setHandler(Handler handler){
 this.handler = handler;
 }
 }
 
 class MyHandler extends AbsHandler implements Handler {
 private String name;
 public MyHandler(String name){
 this.name = name;
 }
 @Override
 public void operator(){
 Test.printMsg(name+" deal!");
 if (getHandler() != null){
 getHandler().operator();
 }
 }
 }
 
 public class Test {
 public static void printMsg(String msg){
 System.out.println(msg);
 }
 public static void main(String[] args){
 MyHandler h1 = new MyHandler("h1");
 MyHandler h2 = new MyHandler("h2");
 MyHandler h3 = new MyHandler("h3");
 h1.setHandler(h2);
 h2.setHandler(h3);
 h1.operator();
 }
 }
 
 |