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

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

ID:57174388

大小:443.00 KB

页数:19页

时间:2020-08-05

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

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

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

2、模式、工厂方法模式、抽象工厂模式和模板方法,代码运行正确无误。三、实验内容1.在某图形库API中提供了多种矢量图模板,用户可以基于这些矢量图创建不同的显示图形,图形库设计人员设计的初始类图如下所示:在该图形库中,每个图形类(如Circle、Triangle等)的init()方法用于初始化所创建的图形,setColor()方法用于给图形设置边框颜色,fill()方法用于给图形设置填充颜色,setSize()方法用于设置图形的大小,display()方法用于显示图形。客户类(Client)在使用该图形库时发现存在如下问题:①由于在创建窗口

3、时每次只需要使用图形库中的一种图形,因此在更换图形时需要修改客户类源代码;②在图形库中增加并使用新的图形时需要修改客户类源代码;...③客户类在每次使用图形对象之前需要先创建图形对象,有些图形的创建过程较为复杂,导致客户类代码冗长且难以维护。现需要根据面向对象设计原则对该系统进行重构,要求如下:①隔离图形的创建和使用,将图形的创建过程封装在专门的类中,客户类在使用图形时无须直接创建图形对象,甚至不需要关心具体图形类类名;②客户类能够方便地更换图形或使用新增图形,无须针对具体图形类编程,符合开闭原则。绘制重构之后的类图并说明在重构过程中

4、所运用的面向对象设计原则。1)重构之后的类图2)重构过程中所使用的面向对象设计原则及简要说明:开闭原则:创建新图形只要新加入图形工厂和对应图形类,不修改源代码。依赖倒转原则:针对接口编程。单一职责原则:每个工厂只生产对应图形。...2.某销售管理系统支持多种支付方式,如现金支付、行用卡支付和代金券支付等,我们可能会像下面这么写,考虑用简单工厂模式对其进行重构。1)类图2)实现代码:publicclassClient{publicstaticvoidmain(String[]args){IpayFactoryiFactory=newIp

5、ayFactory();Ipaymethonpaymethon=iFactory.createPaymethon("cash");if(paymethon!=null){paymethon.pay();}else{System.out.println("error");}}}...publicclassIpayFactory{publicIpaymethoncreatePaymethon(Stringpaymethon){if(paymethon.equalsIgnoreCase("cash")){returnnewCash();}e

6、lseif(paymethon.equalsIgnoreCase("creditcard")){returnnewCreditCard();}if(paymethon.equalsIgnoreCase("voucher")){returnnewVoucher();}else{returnnull;}}}publicinterfaceIpaymethon{publicvoidpay();}publicclassCashimplementsIpaymethon{publicvoidpay(){System.out.println("Cas

7、hpay");}}publicclassCreditCardimplementsIpaymethon{publicvoidpay(){System.out.println("CreditCardpay");}}publicclassVoucherimplementsIpaymethon{publicvoidpay(){System.out.println("Voucherpay");}}1)实现结果:...3.使用简单工厂模式设计一个可以创建不同几何形状(Shape),如圆形(Circle)、矩形(Rectangle)和三角形(Tri

8、angle)等的绘图工具类,每个几何图形均具有绘制Draw()和擦除Erase()两个方法,要求在绘制不支持的几何图形时,抛出一个UnsupportedShapeException异常,绘制类图并编程模拟实现。1)类图2

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

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

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