好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

精品文档

实验名称:实验3 设计模型实验1 学期:2017-2024学年 第二学期

一、实验目的

1.熟练使用面向对象设计原则对系统进行重构;

2.熟练使用面向对象编程语言(JAVA或C++)实现几种常见的创建型设计模式和行为型模式,包括简单工厂模式、工厂方法模式、抽象工厂模式和模板方法,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。

二、实验要求

1. 选择合适的面向对象设计原则对系统进行重构,正确无误地绘制重构之后的类图; 2. 结合实例,正确无误地绘制简单工厂模式、工厂方法模式、抽象工厂模式和模板方法的模式结构图;

3. 实现简单工厂模式、工厂方法模式、抽象工厂模式和模板方法,代码运行正确无误。

三、实验内容

1.在某图形库API中提供了多种矢量图模板,用户可以基于这些矢量图创建不同的显示图形,图形库设计人员设计的初始类图如下所示:

ClientCircle+++++TriangleRectangleinit (): void+init (): void+init (): voidsetColor (): void+setColor (): void+setColor (): voidfill (): void+fill (): void+fill (): voidsetSize (): void+setSize (): void+setSize (): voiddisplay (): void+display (): void+display (): void .........在该图形库中,每个图形类(如Circle、Triangle等)的init()方法用于初始化所创建的

图形, setColor()方法用于给图形设置边框颜色,fill()方法用于给图形设置填充颜色,setSize()方法用于设置图形的大小,display()方法用于显示图形。

客户类(Client)在使用该图形库时发现存在如下问题:

① 由于在创建窗口时每次只需要使用图形库中的一种图形,因此在更换图形时需要修改客户类源代码;

② 在图形库中增加并使用新的图形时需要修改客户类源代码;

③ 客户类在每次使用图形对象之前需要先创建图形对象,有些图形的创建过程较为复杂,导致客户类代码冗长且难以维护。

.

精品文档

现需要根据面向对象设计原则对该系统进行重构,要求如下:

① 隔离图形的创建和使用,将图形的创建过程封装在专门的类中,客户类在使用图形时无须直接创建图形对象,甚至不需要关心具体图形类类名;

② 客户类能够方便地更换图形或使用新增图形,无须针对具体图形类编程,符合开闭原则。

绘制重构之后的类图并说明在重构过程中所运用的面向对象设计原则。 1) 重构之后的类图

2) 重构过程中所使用的面向对象设计原则及简要说明:

开闭原则:创建新图形只要新加入图形工厂和对应图形类,不修改源代码。 依赖倒转原则:针对接口编程。

单一职责原则:每个工厂只生产对应图形。

2. 某销售管理系统支持多种支付方式,如现金支付、行用卡支付和代金券支付等,我们可能会像下面这么写,考虑用简单工厂模式对其进行重构。

.

精品文档

1) 类图

2) 实现代码:

public class Client {

public static void main(String[] args) {

IpayFactory iFactory = new IpayFactory();

Ipaymethon paymethon = iFactory.createPaymethon(\); if (paymethon != null) { paymethon.pay(); } else {

System.out.println(\); } }

}

public class IpayFactory {

public Ipaymethon createPaymethon(String paymethon) {

.

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

精品文档实验名称:实验3设计模型实验1学期:2017-2024学年第二学期一、实验目的1.熟练使用面向对象设计原则对系统进行重构;2.熟练使用面向对象编程语言(JAVA或C++)实现几种常见的创建型设计模式和行为型模式,包括简单工厂模式、工厂方法模式、抽象工厂模式和模板方法,理解每
推荐度:
点击下载文档文档为doc格式
1dqy70xqfc4m0xd0pw4b4c2db011w500maq
领取福利

微信扫码领取福利

微信扫码分享