java设计模式之责任链模式( 四 )

第三步:客户端调用

我们在这里指定了士兵的下一任处理者是大臣 , 大臣的下一任处理者是皇帝 , 没有为皇帝指派下一任处理者 , 输出来的结果就是这样 。 不过还有一种情况 , 也就是五百里加急的情报 , 士兵可以直接上报给皇帝处理 , 不经过大臣 。 这种方式也是可以的 。

三、分析责任链模式

优点

1)降低耦合度:客户端不知道请求由哪个处理者处理 , 而处理者也可以指派任意的继承者去处理 。

2)良好的扩展性:我们可以很方便的增加处理者

缺点

1)责任链比较长的时候会影响系统性能 。 因为中间的处理者可能太多了 , 就好比贪官把国家拨得钱一层一层搜刮 , 到最后就剩下一点点了 。

2)当出现错误的时候 , 我们必须按照这个链一层一层去解决处理 。

推荐阅读