打字猴:1.70046437e+09
1700464370
1700464371 父亲的答复是:同意
1700464372
1700464373 ––—母亲向儿子请示––-
1700464374
1700464375 母亲的请求是:我要出去逛街
1700464376
1700464377 儿子的答复是:同意
1700464378
1700464379 ––—妻子向丈夫请示––-
1700464380
1700464381 妻子的请求是:我要出去逛街
1700464382
1700464383 丈夫的答复是:同意
1700464384
1700464385 ––—母亲向儿子请示––-
1700464386
1700464387 母亲的请求是:我要出去逛街
1700464388
1700464389 儿子的答复是:同意
1700464390
1700464391 结果也正确,业务调用类Client也不用去做判断到底是需要谁去处理,而且Handler抽象类的子类可以继续增加下去,只需要扩展传递链而已,调用类可以不用了解变化过程,甚至是谁在处理这个请求都不用知道。在这种模式下,即使现代社会的一个小太妹穿越到古代(例如掉入时空隧道,或者时空突然扭转,甚至是突然魔法显灵),对“三从四德”没有任何了解也可以自由地应付,反正只要请示父亲就可以了,该父亲处理就父亲处理,不该父亲处理就往下传递。这就是责任链模式。
1700464392
1700464393
1700464394
1700464395
1700464396 设计模式之禅 [:1700453987]
1700464397 设计模式之禅 16.2 责任链模式的定义
1700464398
1700464399 责任链模式定义如下:
1700464400
1700464401 Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request.Chain the receiving objects and pass the request along the chain until an object handles it.(使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。)
1700464402
1700464403 责任链模式的重点是在“链”上,由一条链去处理相似的请求在链中决定谁来处理这个请求,并返回相应的结果,其通用类图如图16-4所示。
1700464404
1700464405
1700464406
1700464407
1700464408 图16-4 责任链模式通用类图
1700464409
1700464410 责任链模式的核心在“链”上,“链”是由多个处理者ConcreteHandler组成的,我们先来看抽象Handler类,如代码清单16-14所示。
1700464411
1700464412 代码清单16-14 抽象处理者
1700464413
1700464414 public abstract class Handler{
1700464415
1700464416 private Handler nextHandler;
1700464417
1700464418 //每个处理者都必须对请求做出处理
1700464419
[ 上一页 ]  [ :1.70046437e+09 ]  [ 下一页 ]