1700464570
public class Response{
1700464571
1700464572
//处理者返回的数据
1700464573
1700464574
}
1700464575
1700464576
在场景类或高层模块中对链进行组装,并传递请求,返回结果,如代码清单16-17所示。
1700464577
1700464578
代码清单16-17 场景类
1700464579
1700464580
public class Client{
1700464581
1700464582
public static void main(String[]args){
1700464583
1700464584
//声明所有的处理节点
1700464585
1700464586
Handler handler1=new ConcreteHandler1();
1700464587
1700464588
Handler handler2=new ConcreteHandler2();
1700464589
1700464590
Handler handler3=new ConcreteHandler3();
1700464591
1700464592
//设置链中的阶段顺序1—>2—>3
1700464593
1700464594
handler1.setNext(handler2);
1700464595
1700464596
handler2.setNext(handler3);
1700464597
1700464598
//提交请求,返回结果
1700464599
1700464600
Response response=handler1.handlerMessage(new Request());
1700464601
1700464602
}
1700464603
1700464604
}
1700464605
1700464606
在实际应用中,一般会有一个封装类对责任模式进行封装,也就是替代Client类,直接返回链中第一个处理者,具体链的设置不需要高层次模块关系,这样,更简化了高层次模块的调用,减少模块间的耦合,提高系统的灵活性。
1700464607
1700464608
1700464609
1700464610
1700464612
设计模式之禅 16.3 责任链模式的应用
1700464613
1700464614
16.3.1 责任链模式的优点
1700464615
1700464616
责任链模式非常显著的优点是将请求和处理分开。请求者可以不用知道是谁处理的,处理者可以不用知道请求的全貌(例如在J2EE项目开发中,可以剥离出无状态Bean由责任链处理),两者解耦,提高系统的灵活性。
1700464617
1700464618
1700464619
[
上一页 ]
[ :1.70046457e+09 ]
[
下一页 ]