GoF定义:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
这个模式适合制定流程、任务类的程序设计,预先设定好流程或者任务,然后从流程的起始点开始,程序按照流程设定自动去完成。
代码:
输出:
NodeC处理完毕!
NodeC处理完毕!
无法处理请求!
每个节点都有根据条件来判断是否属于自己可以完成的任务,如果是就完成,如果不是则判断是否有上一级的节点,有的话就将请求送往上一节点去处理。
这个模式很适合公文扭转类的程序。
这里的条件设定可以有很多种变化,比如请求一个商品的折扣,可以有直接打折、降价、优惠券使用等,只要定义好每个处理的具体完成的内容以及出口节点,即整个商品的折扣流程定义好,那么就可以处理商品的折扣请求。
也可以是分类条件,比如几个类型的命令,每个类型的命令都有各自的处理以及下一级的出口,那么也可以使用这样的设计模式来完成。