返回首页

简介
行为模式关注对象之间的职责assigment。但是他们有复杂的控制流,难以遵循runtime.The对象是相互关联的,他们甚至不容许我们最终的控制。
它并不总是不可能单个对象可以处理所有的请求,他们总是在运行时转移到其他对象的请求,以完成他们的工作,维持这些对象的引用。太多了解彼此的对象有很大的机会增加耦合,设计,应确保他们应保持最小。背景(责任链) - 定义
避免耦合给多个对象机会处理请求,请求到其接收的发送者。链接收对象,并通过沿链的要求,直到有一个对象处理它。参考 设计模式,可复用面向对象软件的元素缆一些更多的信息
发送者发送请求和接收器接受,并采取相应的行动。请求的接收器链中的排列在数量上能够接收请求,或将请求转发到类似的对象。处理的对象发出请求的发送者不知道,但肯定至少一个对象(默认)将回答呼吁。每一个接收对象处理相同的接口,不同的实现处理该请求。每个thenbsp对象;链应链中提出的请求邻近的对象的引用,如果他们不能够处理相同。
Resposibility链不会真正适合在设计中,如果存在一个场景是一种可能性,即没有对象可以响应发件人等,未处理的请求,可以去那里。完美的例子
由校长(客户端)安排一名教师(处理),为提高学生的一般知识。于是,他拿起十名学生随机从一个类,并聘请了一位老师。老师带了一个星期的类。头主要测试老师的公信力,使突然访问类,并问老师问题(请求)在他面前的学生。

老师总是拿起一个学生问他一个问题。他回答说,如果他知道,否则他在9个选择任何一个。当然,直到老师的问题是这样回答。如果所有的前九名学生不回答,第十届家伙的回答,也老师很清楚地知道这十家伙是个聪明的家伙(默认的处理程序),谁可以回答她的问题,如果没有回答。头高手们提出的要求,向老师,有没有人能回答教师问题的知识。因此,要求有一个隐含的接收器。UML{S1}
责任链不适合未处理的请求。说现在的老师是知道的,没有人能回答她,会是什么要问的问题点。与会者处理程序(教师)
定义的接口处理请求(HandleQuestions)
实现继任链接。学生需要知道其中的问题是要通过,如果他不知道答案。具体处理器(PoorStudent,AverageStudent,ExcellentStudent)
(穷学生回答简单的问题,这是他的责任)负责处理请求。可以访问的继任者。
如果穷学生不能回答的问题,他传递给未来学生的相同。客户端(头大师)
启动的请求对象上链。源代码(客户端)历史版本1.0发布于2006年7月29日
模式的思考可以发展固溶!|萨布哈什Balachandran

回答

评论会员:TT 时间:2011/12/06
会员1600755
评论会员:游客 时间:2011/12/06
您好,如果您需要通用,准备使用COR库NET或Mono(单声道),你可以试试这个:imgsrc=http://www.orcode.com/upimg/2011_12_06_20_05_57_1.jpg。我会感激任何反馈。BR,第