实验二 面向对象设计原则(下)之里氏代换依赖倒置迪米特

实验二 面向对象设计原则(下)之里氏代换依赖倒置迪米特

ID:6132784

大小:91.00 KB

页数:9页

时间:2018-01-04

实验二 面向对象设计原则(下)之里氏代换依赖倒置迪米特_第1页
实验二 面向对象设计原则(下)之里氏代换依赖倒置迪米特_第2页
实验二 面向对象设计原则(下)之里氏代换依赖倒置迪米特_第3页
实验二 面向对象设计原则(下)之里氏代换依赖倒置迪米特_第4页
实验二 面向对象设计原则(下)之里氏代换依赖倒置迪米特_第5页
资源描述:

《实验二 面向对象设计原则(下)之里氏代换依赖倒置迪米特》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验二面向对象设计原则(下)专业班级计本102学号1018014070姓名牛浩兴实验学时2实验类型设计实验地点实验时间指导老师实验成绩年月日一、实验目的及要求①深入理解面向对象设计的思维方式。②掌握里氏代换原则,并会运用该原则设计可扩展的软件模块。③掌握依赖倒置原则,并会运用该原则设计更抽象的软件模块。④掌握迪米特法则,并会运用该原则设计低耦合的软件模块。二、实验环境微型计算机,MyEclpic.8.5三、实验内容l案例1:一家咖啡店,销售的咖啡品种如下:普通咖啡5元一杯,加糖咖啡6元一杯,加奶咖啡7元一杯,冰咖啡6元一杯,巧克力咖啡8元一杯。假如一个顾客点了2杯普通咖啡、1杯

2、冰咖啡,2杯巧克力咖啡,请编写一个结算模块计算该顾客的应付金额。若该咖啡店以后还会推出新的咖啡产品(如柠檬咖啡、香草咖啡等),要求改结算模块能够方便地进行扩展。实验要求:(1)保证在程序中可以自由增加新的咖啡产品而无需修改已有的程序代码。——开闭原则(2)保证在结算模块中可以正确获得各类咖啡产品的价格。——里氏代换原则(3)编写一个场景类来测试结算模块的功能实现是否正确。(4)绘制最后得到的最佳设计类图。实验后的思考:(1)子类与父类相比较,哪个更抽象一些?你编程时是否喜欢使用继承机制?(2)里氏代换原则告诉我们,定义一个子类时应该注意哪些方面?l案例3:Tom总是随身带着一个

3、钱包(里面有1000元钱),而我们只想向Tom借300元钱。实验要求:(1)依据案例的描述,识别案例中的基本对象类别和各自的行为。(2)确保人有借钱的行为,并隐藏人有一个钱包的信息。(3)编写一个测试场景:我们连续4次向Tom借300元钱,输出每次借到的实际钱数。(4)绘制最后得到的最佳设计类图。实验后的思考:(1)迪米特法则告诉我们,软件模块间的联系越少越好。为什么?(2)一个对象通常包含许多信息,其中哪些信息应该隐藏,哪些信息又应该公开,你在设计时是如何做出决定的?3、实验步骤①实验前,复习课堂讲授内容,熟悉Java编程语言,做好实验准备工作。②实验时,抓紧时间完成全部案例

4、。③实验过程中遇到问题,可与指导教师或同学讨论交流。④实验中若不能完成全部实验案例,务必课后补做,以提高软件设计实际能力。四、实验结果l案例1:(1)编写一个场景类来测试结算模块的功能实现是否正确。packagejb102.niuhaoxing.lsdh;importjava.util.ArrayList;publicclassClient{publicstaticvoidmain(String[]args){ArrayListarr=newArrayList();UsualCoffeeusual=newUsualCoffee(2);IceCof

5、feeice=newIceCoffee(1);ChocolateCoffeechocolate=newChocolateCoffee(2);arr.add(usual);arr.add(ice);arr.add(chocolate);doubletotalPrice=Platform.getTotalPrice(arr);System.out.println("结算:"+totalPrice);}}(2)抽象类Coffee.java:packagejb102.niuhaoxing.lsdh;publicabstractclassCoffee{publicabstractintg

6、etPrice();publicabstractintgetCount();publicabstractvoidsetCount(intcount);}(3)普通咖啡UsualCoffee.java:packagejb102.niuhaoxing.lsdh;publicclassUsualCoffeeextendsCoffee{privateintcount;publicUsualCoffee(intcount){this.count=count;}@OverridepublicintgetPrice(){return5;}@OverridepublicintgetCount(

7、){returnthis.count;}@OverridepublicvoidsetCount(intcount){this.count=count;}}(4)巧克力咖啡ChocolateCoffee.java:packagejb102.niuhaoxing.lsdh;publicclassChocolateCoffeeextendsCoffee{privateintcount;publicChocolateCoffee(intcount){this.count=count;}publici

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

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

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