乐趣区

关于设计模式:设计模式责任链

责任链:将每个模块负责的解决流程链接起来,造成一条链子,所有申请的数据进入这条链子时,都会由链头到链尾被链子上的各个模块解决。

例如:Java EE 的 Filter(过滤链)就是责任链,所有申请都必须通过这条过滤链,每通过一个节点都会被这个节点进行解决。如果申请满足过滤条件,那么就会进入下一个过滤节点,直到达到过滤链的尾部。

因为是过滤链是链表的构造,那么也就是说如果我须要减少一个过滤条件,那么就往过滤链退出一个过滤节点;同理,要缩小一个过滤条件,那么就从链表移除即可。这样就能够轻松实现动静治理过滤规定,并且每个过滤节点层层过滤。

模式分析:

1、如果一个解决规定和流程过于宏大,那么能够将其拆分成若干个规定和流程,而后将它们串起来造成一条责任链。这样每个节点只负责一部分规定和流程,保护和改变十分敌对。同时如果不须要某个规定和流程,那么就将对应的节点移除即可。同样减少规定和流程也是如此。

退出移动版