职责链模式(Chain of Responsibility)
意图:
使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。
将这个对象练成一条链,并沿着这条链传递改请求,直到有一个对象处理它为止。
适用性:
在以下条件下使用职责链:
1)有多个的对象可以处理一个请求, 哪个对象处理该请求运行时刻自动确定
2)你想在不明确指定接受者的情况下, 向多个对象中的一个提交一个请求
3)可处理一个请求的对象集合应被动态指定
效果:
职责链有下列优点和缺点:
1)降低耦合度
2)增强了给对象指派职责的灵活性
3)不保证被接受
实现:
下面是在职责链模式中药考虑的实现问题:
1)实现后继者链 有两种方法可以实现后继者链
a)定义新的链接
b)使用已有的链接
2)链接后者
3)表示请求
4)在Smalltalk中自动转发
意图:
使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。
将这个对象练成一条链,并沿着这条链传递改请求,直到有一个对象处理它为止。
适用性:
在以下条件下使用职责链:
1)有多个的对象可以处理一个请求, 哪个对象处理该请求运行时刻自动确定
2)你想在不明确指定接受者的情况下, 向多个对象中的一个提交一个请求
3)可处理一个请求的对象集合应被动态指定
效果:
职责链有下列优点和缺点:
1)降低耦合度
2)增强了给对象指派职责的灵活性
3)不保证被接受
实现:
下面是在职责链模式中药考虑的实现问题:
1)实现后继者链 有两种方法可以实现后继者链
a)定义新的链接
b)使用已有的链接
2)链接后者
3)表示请求
4)在Smalltalk中自动转发