Chain of Responsibility
- 目的
- 构造
- 应用
- 结论
目的
- 禁止请求发送者同多个接收者的耦合。
- 接收者链不断传递请求直到能够解决请求。
构造
- Handler : 定义一个处理请求的接口.
- ConcreteHandler : 处理它负责的请求,可以传递到下一个接收者。如果它可以处理该请求,则不会传递到下一个接收者,否则相反。
- Client : 初始化请求。
应用
- 一个或多个对象会处理一个请求,接收者应该先验证请求是否可以处理。
- 返回处理后的请求但是并不知道是那个接收者处理的。
- 接收者集合需要动态指定先后顺序。
结论
- 降低耦合.
- 灵活地添加对象的职责.
- 请求并不会保证一定被处理.