什么是职责链模式
来自大话:"使多个对象都有机会处理请求,从而避免请求者跟发送者何接收者的请求耦合关系,将请求连成一条链,并沿着该链传递该请求,直到有个对象处理他为止"。
这个模式可以联想到这么一个场景,在公司请假。在公司请假,首先你提交请假条,然后经理审批,经理审批好了,人事审批,人事审批在给总经理审批。
client:我们 handler:公司领导抽象层 setSuccessor():指定自己上一层领导人 ConcreteHandler:具体领导人 request:具体请求对象
在这个设计中handler的数据结构就是链表,这里只给了上级,当然在具体的业务设计中我们还可以设计一个下级。每个handler都有处理请求的方法,根绝请求对象状态去判断怎么处理。但是每个处理者的上级要在客户端就设置好。
职责链模式的好处
- 解耦合
- 符合开闭原则
所有设计模式都是这几个特点,所以最主要的还是要看懂他的设计。
注意:本文归作者所有,未经作者允许,不得转载