设计模式实验1报告oo设计原则实训

设计模式实验1报告oo设计原则实训

ID:22208483

大小:219.00 KB

页数:8页

时间:2018-10-27

设计模式实验1报告oo设计原则实训_第1页
设计模式实验1报告oo设计原则实训_第2页
设计模式实验1报告oo设计原则实训_第3页
设计模式实验1报告oo设计原则实训_第4页
设计模式实验1报告oo设计原则实训_第5页
资源描述:

《设计模式实验1报告oo设计原则实训》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、ShenzhenUniversity深圳大学实验报告课程名称:软件体系结构实验项目名称:OO设计原则实训学院:计算机与软件学院专业:软件工程指导教师:报告人:学号:班级:实验时间:2014/4/5一、实验目的与要求:熟练使用面向对象设'H•原则对系统进行重构。选择合适的ifif向对象设计原则对系统进行重构,正确无误绘制重构之后的类图。提供東构之后的类图和代码,简要说明東构过程中所运用的面向对象设•原则二、实验内容使用面向对象设计原则对系统进行重构。辅助使用的工具可以是Microsoftvisio或Power

2、Designer或IBMRSA等,可根据个人情况自巾选择使用自己熟用的。在某图形库API中提供了多种矢量图模板,用户可以基于这些矢量图创建不同的显示图形,图形库没计人员设计的初始类图如下所示:在该图形库屮,毎个图形类(如Circle、Triangle等)的init()方法用于初始化所创逮的图形,setColorO方法川于给图形设置边框颜色,川1()方法川于给图形设置填充颜色,setSize()方法川于设置图形的大小,displayO方法用于显示图形。客户类(Client)在使用该图形库时发现存在如下W题:①

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

4、绘制重构之后的类图并说明在重构过程中所运用的而14对象设计原则。三、实验步骤简要说明关键步骤,要特别体现出東构过程中用到面向对象设计原则的那些步骤。使用工厂方法模式,将图形的创建封装在工厂类中,客户类使用工厂类和形状类的抽象接口,三个形状的具体类从形状类接口实现而来,三个工厂类从工厂类接口实现而来,工厂类完成图形的创建,客户类不必关心图形的具体创建方法。要想增加新图形,只需要增加新的图形类和工厂类,不必修改代码,符合开闭原则,客户类只依赖于抽象类,符合依赖倒转原则。四、实验结果I.重构后的类图:2.重构过程

5、屮使用的OO设计原则及简要说明:要增加新图形,只需要增加新的图形类和工厂类,不必修改代码,符合开闭原则;客户类只依赖于抽象类,符合依赖倒转原则。3.重构后的代码抽象形状类:PublicinterfaceShape{Publicvoidinit();PublicvoidsetColor();Publicvoidfill();PublicvoidsetSize();Publicvoiddisplay();}具体形状类CirclePublicclassCircleimplementsShape{Publicvoi

6、dinit(){}PublicvoidsetColor(){}Publicvoidfill(){}PublicvoidsetSize(){}Publicvoiddisplay(){}}具体形状类TrianglePublicclassTriangleimplementsShape{Publicvoidinit(){}PublicvoidsetColor(){)Publicvoidfill(){}PublicvoidsetSize(){}Publicvoiddisplay(){}}具体形状类RectangleP

7、ublicclassRectangleimplementsShape{Publicvoidinit(){)PublicvoidsetColor(){)Publicvoidfill(){}PublicvoidsetSize(){}Publicvoiddisplay(){}抽象工/•类ShapeFactory:PublicinterfaceShapeFactory{PublicShapeProduceShape();}具体工厂类CircleFactory:PublicclassCircIeFactoryimpl

8、ementsShapeFactory{PublicShapeProduceShape(){ReturnnewCircle();}}具体工厂类TriangleFactory:PublicclassTriangleFactoryimplementsShapeFactory{PublicShapeProduceShape(){ReturnnewTriangle();)}具体丁厂类RectangleFactory:Pub

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

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

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