责任链模式

2017-06-24  本文已影响0人  上海马超23
requests = new List(new request1(), new request2(), new request3());
handler1 = new HandlerImplement1();
handler2 = new HandlerImplement2();
handler3 = new HandlerImplement3();
handler1.setNext(handler2);
handler2.setNext(handler3);
for (request : requests) {
  handler1.HandleMessage(request); // 统一由责任链的第一个节点开始驱动
}

总结

优点

  1. 请求方不用知道整个处理链的全貌,只管调用第一个节点。扩展责任链节点也不会影响请求方。

缺点

  1. 请求链过长可能会造成性能问题。一般在Handler里设置最大节点数量属性,setNextHandler的时候判断是否超过该值,避免出现超长链。
上一篇 下一篇

猜你喜欢

热点阅读