责任链模式 2.ppt

责任链模式 2.ppt

ID:48054824

大小:472.00 KB

页数:12页

时间:2020-01-12

责任链模式 2.ppt_第1页
责任链模式 2.ppt_第2页
责任链模式 2.ppt_第3页
责任链模式 2.ppt_第4页
责任链模式 2.ppt_第5页
资源描述:

《责任链模式 2.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第九章责任链模式Java设计模式Java设计模式8/15/20211责任链模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。ChainofResponsibilityPatternAvoidcouplingthesenderofarequesttoitsreceiverbygivingmorethanoneobjectachancetohandletherequest.Chainthereceivi

2、ngobjectsandpasstherequestalongthechainuntilanobjecthandlesit.一、概述Java设计模式Java设计模式8/15/20212责任链模式是使用多个对象处理用户请求的成熟模式,责任链模式的关键是将用户的请求分派给许多对象,这些对象被组织成一个责任链,即每个对象含有后继对象的引用,并要求责任链上的每个对象,如果能处理用户的请求,就做出处理,不再将用户的请求传递给责任链上的下一个对象;如果不能处理用户的请求,就必须将用户的请求传递给责任链上的下

3、一个对象。一、实例Java设计模式Java设计模式8/15/20213用户提交一个人的身份证号码,想知道该人是在北京、上海或者天津居住。二、责任链模式的结构与使用Java设计模式Java设计模式8/15/20214模式的结构中包括两种角色:处理者(Handler)具体处理者(ConcreteHandler)Java设计模式Java设计模式8/15/20215模式的UML类图Java设计模式Java设计模式8/15/20216模式的结构的描述与使用1.处理者(Handler):Handler.ja

4、vapublicinterfaceHandler{publicabstractvoidhandleRequest(Stringnumber);publicabstractvoidsetNextHandler(Handlerhandler);}Java设计模式Java设计模式8/15/20217模式的结构的描述与使用2.具体处理者(ConcreteHandler)_1:Beijing.javaimportjava.util.*;publicclassBeijingimplementsHandler

5、{privateHandlerhandler;privateArrayListnumberList;Beijing(){numberList=newArrayList();numberList.add("11129812340930034");numberList.add("10120810340930632");numberList.add("22029812340930034");numberList.add("32620810340930632");}pub

6、licvoidhandleRequest(Stringnumber){if(numberList.contains(number))System.out.println("该人在北京居住");else{System.out.println("该人不在北京居住");if(handler!=null)handler.handleRequest(number);}}publicvoidsetNextHandler(Handlerhandler){this.handler=handler;}}Java设

7、计模式Java设计模式8/15/20218模式的结构的描述与使用2.具体处理者(ConcreteHandler)_2:Shanghai.javaimportjava.util.*;publicclassShanghaiimplementsHandler{privateHandlerhandler;privateArrayListnumberList;Shanghai(){numberList=newArrayList();numberList.add("34529

8、812340930034");numberList.add("98720810340430632");numberList.add("36529812340930034");numberList.add("77720810340930632");}publicvoidhandleRequest(Stringnumber){if(numberList.contains(number))System.out.println("该人在上海居住");else{System.out.println("该人

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。