赞
踩
我们首先看看什么是推卸责任。假设现在我们去公司领取资料。首先我们向公司前台打听要去哪里领取资料,她告诉我们应该去“营业窗口”。然后等我们到了“营业窗口”后,又被告知应该去“售后部门”。等我们好不容易赶到了“售后部门”,又被告知应该去“资料中心”,因此最后我们又不得不赶到“资料中心”。像这样,在找到合适的办事人之前,我们被不断地赐给一个有一个人,这就是“推卸责任”。
“推卸责任”听起来有些贬义的意思,但是有时候也确实存在需要“推卸责任”的情况。例如,当外部请求程序进行某个处理,但程序暂时无法直接决定由哪个对象负责处理时,就需要推卸责任。这种情况下,我们可以考虑 将多个对象组成一条责任链,然后按照它们在责任链上的顺序一个一个地找出到底应该谁来负责处理。
责任链为请求创建了一个接受者对象的链。这种模式给予请求的类型,对请求的发送者和接收者解耦。这种类型的设计模式属于行为型模式。。
在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传递给下一个接收者,以此类推。
责任链模式中的登场角色
Handler(处理者)
CncreteHandler(具体的处理者)
Filter
接口Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。