定义: 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。 将这个对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止。


实例:
1》 RPG中的游戏,攻击过程,攻击不同的防御设备。
2》申请的各个层级的审批
3》。。。
使用的情况:
1》有多个对象可以处理请求,而处理程序只有在运行时才能够确定
2》向一组对象发送请求,而不想显式指定处理请求的特定处理程序。
责任链优点:
1》接受者和发送者都没有对方的明确信息,且链中的对象自也并不知道链的结构。 简化了对象的相互连接,它们仅仅需要保持以空格指向其他后继的引用, 不需要保存它所有的候选接受者的引用。
2》 可以随时修改处理一个请求的接口,增加了灵活性
PS: 主要解决了过多额if...else 以及switch...case的问题。
网友评论