欢迎来到天天文库
浏览记录
ID:52442835
大小:1.17 MB
页数:157页
时间:2020-03-27
《Java设计模式--------行为模式和总结.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、责任链模式责任链模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。ChainofResponsibilityPatternAvoidcouplingthesenderofarequesttoitsreceiverbygivingmorethanoneobjectachancetohandletherequest.Chainthereceivingobjectsandpasstherequestalongthechainuntilanobjecthand
2、lesit.2011-11-291概述使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,这条链传递该请求,直到有一个对象处理它为止。这一模式的想法是,给多个对象处理一个请求的机会,从而解耦发送者和接受者.2011-11-292责任链模式的结构与使用模式的结构中包括两种角色:•处理者(Handler)•具体处理者(ConcreteHandler)2011-11-293模式的UML类图2011-11-294参与者1.Handler定义一个处理请求的接口。实现后继链。2.ConcreteHandler处理它所负
3、责的请求。可访问它的后继者。如果可处理该请求,就处理;否则将该请求转发给它的后继者。3.Client向链上的具体处理者(ConcreteHandler)对象提交请求。模式的结构的描述与使用1.处理者(Handler):Handler.javapublicinterfaceHandler{publicabstractvoidhandleRequest(Stringnumber);publicabstractvoidsetNextHandler(Handlerhandler);}2011-11-296模式的结构的描述与使用2.具体处理者(Concret
4、eHandler)_1:Beijing.javaimportjava.util.*;publicclassBeijingimplementsHandler{privateHandlerhandler;privateArrayListnumberList;Beijing(){numberList=newArrayList();numberList.add("11129812340930034");numberList.add("10120810340930632");numberList.add("2202981234
5、0930034");numberList.add("32620810340930632");}publicvoidhandleRequest(Stringnumber){if(numberList.contains(number))System.out.println("该人在北京居住");else{System.out.println("该人不在北京居住");if(handler!=null)handler.handleRequest(number);}}publicvoidsetNextHandler(Handlerhandler){this.
6、handler=handler;}}2011-11-297模式的结构的描述与使用2.具体处理者(ConcreteHandler)_2:Shanghai.javaimportjava.util.*;publicclassShanghaiimplementsHandler{privateHandlerhandler;privateArrayListnumberList;Shanghai(){numberList=newArrayList();numberList.add("34529812340930034");numb
7、erList.add("98720810340430632");numberList.add("36529812340930034");numberList.add("77720810340930632");}publicvoidhandleRequest(Stringnumber){if(numberList.contains(number))System.out.println("该人在上海居住");else{System.out.println("该人不在上海居住");if(handler!=null)handler.handleReques
8、t(number);}}publicvoidsetNextHandler(Handlerhandler){this.han
此文档下载收益归作者所有