四、模式优缺点
优点:
1、降低耦合度。职责链模式将请求处理细节(请求由哪些对象处理,怎样处理)跟客户端代码隔离开来,这些细节对客户端是透明的,客户端只需将相应的职责添加到链中即可,具体的处理过程交给责任链,降低了系统的耦合度。
2、增强了给对象指派职责的灵活性。可以通过在运行时对职责链进行动态的增加或修改来改变处理一个请求的职责,职责链的维护是客户端负责的,所以增加或修改责任链不影响类库代码,非常灵活。
缺点:
1、不保证请求被接受。由于责任链中的每个对象只处理自己感兴趣的请求,对于请求是否处理过并没有感知,这样容易导致请求没有对应的处理者。当一个请求的责任链没有正确配置时也会导致该请求得不到处理。
2、由于责任链模式请求处理的不确定性,所以加大了程序调试的难度。