面向对象系统分析和设计综合实验报告

面向对象系统分析和设计综合实验报告

ID:47544853

大小:418.00 KB

页数:18页

时间:2020-01-14

面向对象系统分析和设计综合实验报告_第1页
面向对象系统分析和设计综合实验报告_第2页
面向对象系统分析和设计综合实验报告_第3页
面向对象系统分析和设计综合实验报告_第4页
面向对象系统分析和设计综合实验报告_第5页
资源描述:

《面向对象系统分析和设计综合实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.实验名称:实验4设计模型实验2学期:2017-2018学年第二学期一、实验目的1.熟练使用面向对象设计原则对系统进行重构;2.熟练使用面向对象编程语言(JAVA或C++)实现几种常见的设计模式,包括单例模式、策略模式、装饰模式和适配器模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。二、实验要求1.选择合适的面向对象设计原则对系统进行重构,正确无误地绘制重构之后的类图;2.结合实例,正确无误地绘制单例模式、策略模式、装饰模式和适配器模式的结构图;3.实现单例模式、策略模式、装饰模式和适配器模式,代码运行正确无误。三、实验内容1

2、.现实生活中,居民身份证号码具有唯一性,同一个人不允许有多个身份证号码,第一次申请身份证时将号码分配给居民,如果之后因为遗失等原因补办时,还是使用原来的身份证号码,不会产生新号码,现使用单例模式模拟该场景。1)类图2)实现代码:publicclassIdClient{word范文.publicstaticvoidmain(String[]args){IdentityCardNo.getInstance();IdentityCardNo.getInstance();}}packageRefactoring1;publicclassIdentityCardNo{

3、privatestaticIdentityCardNoinstance;privateStringno;privateIdentityCardNo(){}publicstaticIdentityCardNogetInstance(){if(instance==null){System.out.println("第一次办理身份证,分配新号码");instance=newIdentityCardNo();instance.setNo("No6000654321");System.out.println("身份证号码为:"+instance.getNo());}e

4、lse{System.out.println("重复办理身份证,获取旧号码!");}returninstance;}publicStringgetNo(){returnno;}publicvoidsetNo(Stringno){this.no=no;}}2.每一麻将局都有两个骰子,因此骰子就应当是双例类。现使用多例模式模拟该场景。word范文.1)类图2)实现代码:importjava.util.Date;importjava.util.Random;publicclassDice{privatestaticDicedie1=newDice();privat

5、estaticDicedie2=newDice();privateDice(){}publicstaticDicegetInstance(intwhichOne){if(whichOne==1){returndie1;}else{returndie2;}}publicsynchronizedintdice(){Dated=newDate();Randomr=newRandom(d.getTime());intvalue=r.nextInt();value=Math.abs(value);value=value%6;value+=1;returnvalue;}

6、}importjava.util.Random;importjava.util.Date;publicclassDiceClient{word范文.privatestaticDicedie1,die2;publicstaticvoidmain(String[]args){die1=Dice.getInstance(1);die2=Dice.getInstance(2);System.out.println("第一骰子骰出:"+die1.dice());System.out.println("第二骰子骰出:"+die2.dice());}}3.某软件公司为某电

7、影院开发了一套影院售票系统,在该系统中需要为不同类型的用户提供不同的电影票(MovieTicket)打折(Discount)方式,具体打折方案如下:²学生凭学生证可享受票价8折优惠;²年龄在10周岁及以下的儿童可享受每张票减免10元的优惠(原始票价需大于等于20元);²影院VIP用户除享受票价半价优惠外还可进行积分,积分累计到一定额度可换取电影院赠送的奖品。该系统在将来可能还要根据需要引入新的打折方式。试使用策略模式设计并编程模拟实现该影院售票系统。1)类图2)实现代码:publicinterfaceDiscount{publicdoublecalculat

8、e(doubleprice);}publicclas

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

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

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