实验五:责任链模式.doc

实验五:责任链模式.doc

ID:54768598

大小:94.50 KB

页数:11页

时间:2020-04-21

实验五:责任链模式.doc_第1页
实验五:责任链模式.doc_第2页
实验五:责任链模式.doc_第3页
实验五:责任链模式.doc_第4页
实验五:责任链模式.doc_第5页
资源描述:

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

1、实验5:责任链模式一、实验目的本实验要求学生掌握责任链模式,要求学生理解责任链模式中的二种角色并完成类的定义及测试。二、实验任务1.计算整数的阶乘。要求在计算阶乘时综合考虑计算速度与内存占用多少,使用责任链模式分析有哪些类以及这些类的角色,完成这些类的定义并分别测试每一种处理情况。答:处理者(Handler)角色:类Handler具体处理者(ConcreteHandler)角色:类UseInt、类UseLong、类UseBigInteger(1)处理者(Handler)Handler.javapublicinterfaceHandler{publicvoid

2、handleRequest(Stringstr);publicvoidsetNextHandler(Handlerhandler);}(2)具体处理者(ConcreteHandler)UseInt.javapublicclassUseIntimplementsHandler{privateHandlerhandler;privateintresult=1;publicvoidhandleRequest(Stringstr){try{intn=Integer.parseInt(str);inti=1;while(i<=n){result=result*i;if

3、(result<=0){System.out.println("超出我的能力范围,我计算不了");handler.handleRequest(str);return;}i++;}System.out.println(str+"的阶乘:"+result+"");}catch(NumberFormatExceptionexp){System.out.println(exp.toString());}}publicvoidsetNextHandler(Handlerhandler){this.handler=handler;}}UseLong.javapubl

4、icclassUseLongimplementsHandler{privateHandlerhandler;longresult=1;publicvoidhandleRequest(Stringstr){try{inti=1;longn=Long.parseLong(str);while(i<=n){result=result*i;if(result<=0){System.out.println("超出我的能力范围,我计算不了");handler.handleRequest(str);return;}i++;}System.out.println(str+"

5、的阶乘:"+result+"");}catch(NumberFormatExceptionexp){System.out.println(exp.toString());}}publicvoidsetNextHandler(Handlerhandler){this.handler=handler;}}UseBigInteger.javapublicclassUseBigIntegerimplementsHandler{privateHandlerhandler;privateBigIntegerresult=newBigInteger("1");publ

6、icvoidhandleRequest(Stringstr){BigIntegern=newBigInteger(str);BigIntegerONE=newBigInteger("1");BigIntegeri=ONE;while(i.compareTo(n)<=0){result=result.multiply(i);i=i.add(ONE);}System.out.println(str+"的阶乘:"+result+"");}publicvoidsetNextHandler(Handlerhandler){this.handler=handler;

7、}}(3)测试类:Test.javapublicclassTest{privateHandleruseInt,useLong,useBigInteger;publicvoidcreateChain(){useInt=newUseInt();useLong=newUseLong();useBigInteger=newUseBigInteger();useInt.setNextHandler(useLong);useLong.setNextHandler(useBigInteger);}publicvoidresponseClient(Stringstr){Sy

8、stem.out.println("计算"+str+

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

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

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