- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一、实验目的
二、实验内容
使
在该图形库中,每个图形类(如Circle、Triangle等)的init()方法用于初始化所创建的图形, setColor()方法用于给图形设置边框颜色,fill()方法用于给图形设置填充颜色,setSize()方法用于设置图形的大小,display()方法用于显示图形。
客户类(Client)在使用该图形库时发现存在如下问题:
① 由于在创建窗口时每次只需要使用图形库中的一种图形,因此在更换图形时需要修改客户类源代码;
② 在图形库中增加并使用新的图形时需要修改客户类源代码;
③ 客户类在每次使用图形对象之前需要先创建图形对象,有些图形的创建过程较为复杂,导致客户类代码冗长且难以维护。
现需要根据面向对象设计原则对该系统进行重构,要求如下:
① 隔离图形的创建和使用,将图形的创建过程封装在专门的类中,客户类在使用图形时无须直接创建图形对象,甚至不需要关心具体图形类类名;
② 客户类能够方便地更换图形或使用新增图形,无须针对具体图形类编程,符合开闭原则。
绘制重构之后的类图并说明在重构过程中所运用的面向对象设计原则。
(2) 简单工厂模式
使用简单工厂模式设计一个可以创建不同几何形状(Shape),如圆形(Circle)、矩形(Rectangle)和三角形(Triangle)等的绘图工具类,每个几何图形均具有绘制Draw()和擦除Erase()两个方法,要求在绘制不支持的几何图形时,抛出一个UnsupportedShapeException异常,绘制类图并编程模拟实现。
(3) 工厂方法模式
现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个图片读取器(ImageReader),如GIF图片读取器(GifReader)用于读取GIF格式的图片、JPG图片读取器(JpgReader)用于读取JPG格式的图片。图片读取器对象通过图片读取器工厂ImageReaderFactory来创建,ImageReaderFactory是一个抽象类,用于定义创建图片读取器的工厂方法,其子类GifReaderFactory和JpgReaderFactory用于创建具体的图片读取器对象。试使用工厂方法模式设计该程序,绘制类图并编程模拟实现。
(4) 抽象工厂模式
某软件公司欲开发一套界面皮肤库,可以对桌面软件进行界面美化。不同的皮肤将提供视觉效果不同的按钮、文本框、组合框等界面元素,其结构如下图所示:
该皮肤库需要具备良好的灵活性和可扩展性,用户可以自由选择不同的皮肤,开发人员可以在不修改既有代码的基础上增加新的皮肤。试使用抽象工厂模式设计该皮肤库,绘制类图并编程模拟实现。
(5) 单例模式
使用单例模式的思想实现多例模式,确保系统中某个类的对象只能存在有限个,例如两个或三个,设计并编写代码实现一个多例类。
(6) 单例模式
使用单例模式设计一个多文档窗口(注:在Java AWT/Swing开发中可使用JDesktopPane和JInternalFrame来实现),要求在主窗体中某个内部子窗体只能实例化一次,即只能弹出一个相同的子窗体,如下图所示,编程实现该功能。
(注:用C#或C++实现类似功能也可以)
(7) 适配器模式
现有一个接口DataOperation定义了排序方法sort(int[]) 和查找方法search(int[], int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法,类BinarySearch 的binarySearch (int[], int)方法实现了二分查找算法。现使用适配器模式设计一个系统,在不修改源代码的情况下将类QuickSort和类BinarySearch的方法适配到DataOperation接口中。绘制类图并编程实现。(要求实现快速排序和二分查找)
(8) 适配器模式
Windows Media Player和RealPlayer是两种常用的媒体播放器,它们的API结构和调用方法存在区别。现在你的应用程序需要支持这两种播放器API,而且在将来可能还需要支持新的媒体播放器,请问如何设计该应用程序?选择一种合适的设计模式,绘制类图并编程模拟实现。
(9) 桥接模式
某软件公司欲开发一个跨平台图像浏览系统,要求该系统能够显示BMP、JPG、GIF、PNG等多种格式的文件,并且能够在Windows、Linux、Unix等多个操作系统上运行。系统首先将各种格式的文件解析为像素矩阵(Matrix),然后将像素矩阵显示在屏幕上,在不同的操作系统中可以调用不同的绘制函数来绘制像素矩阵。系统需具有较好的扩展性,以便在将来支持新的文件格式和操作系统。试使用桥接模式设计该跨平台图像浏览系统,绘制类图并编程模拟实现。
(10) 组合模
您可能关注的文档
- %26%2346%3B论现代企业财务精细化管理.doc
- (141228)发酵工程复习参考题及答案.docx
- 电梯钢结构施工方案设计.doc
- 电梯监控布线方案.doc
- LED记忆非线性自适应预失真技术研究.docx
- (毕业设计)_精选_23_基于共空间模式的脑电信号特征提取.doc
- 华兰生物与上海莱士财务比较分析.doc
- LS400螺旋输送机设计---毕业设计论文正文.doc
- (精品)讲规矩守纪律演讲稿.doc
- M.West给出的2284个英语最常用词.docx
- 郑州工业应用技术学 经济法(专升本) 综合作业.doc
- 2025年国开电大机考网考-政府经济学-真题 (7).docx
- 2025年国开电大机考网考-政府经济学-真题 (8).docx
- 2025年国开电大机考网考-政府经济学-真题 (15).docx
- 2025年国开电大机考网考-政府经济学-真题 (4).docx
- 郑州工业应用技术学 电气控制与PLC(高起专) 综合作业.doc
- 2025年国开电大机考网考-当代中国政治制度-真题 (3).docx
- 2025年国开电大机考网考-政府经济学-真题 (16).docx
- 2025年国开电大机考网考-人文英语3-真题 (4).docx
- 福建省福州市协和成人高级职业中学高一生物下学期期末试题含解析.docx
文档评论(0)