概述
实验项目名称:创建型软件设计模式
一、实验目的和要求
目的:对创建型设计模式中的工厂方法模式和抽象工厂模式的机制与实现方法进行验证。
要求:在学习创建型设计模式原理的基础上,熟悉JAVA编程环境,掌握UML图的绘制,熟练掌握工厂方法模式和抽象工厂模式的应用场景,并能够对代码进行修改和完善。
二、实验环境
1、PC兼容机
2、Windows10系统
三、实验操作过程及实验结果记录
(一)工厂方法模式
1、作业要求:下面的类图表示工厂方法模式中的设计,用于查询不同类型的汽车保险的特征。有关以下类图的实现,请参阅源代码:
1)首先,在UML设计中,在AutoInsurance的类层次结构中添加一个类LuxeryCarInsurance。
2)类LuxeryCarInsurance与该类层次结构中的每个类具有相同的接口和方法。
3)编写一段文字描述新保险的内容。
4)然后,您需要在类层次结构中添加一个子类 PolicyProducer来创建类 LuxeryCarInsurance的对象。
5)最后,您需要修改客户端类FactoryMethodGUI,以允许新添加的保险单Luxery Car Insurance在客户端中显示。
图1 工厂方法模式的设计类图
2、描述你已完成的作业,包括
1)哪些类已添加到现有类层次结构中?
LuxeryCarInsurance和PolicyProducer类已添加到现有类层次结构中。
2)现有类与新添加类之间的关系?
现有类与新添加类之间的关系为实现。
3)哪些代码被添加到哪个类中?
1.添加LuxeryCar:
2.添加LuxeryCarInsurance:
3.添加ClientGUI:
3、运行 ClientGUI 类,选择" Body Injur Liability ",然后单击"show Info"按钮。在此处列出按正确顺序调用的所有方法。
showInfo->GetActionCommand()->type.equals()->BobyPolicy()->BobyInjur()->getInfo()
4、在此处绘制新的类图
5、在您添加新的LuxeryCarInsurance类后,还更改了哪些其他类?此设计是否遵循开闭原则?为什么?
遵循开闭原则,开闭原则是对扩展开放,对修改关闭,此操作只是增加一个类,并没有修改其他内容。
6、(测试)运行程序,粘贴部分输入和输出结果。
(二)抽象工厂模式
1、作业要求:以下类图表示以抽象工厂模式进行设计,以查询不同类型建筑物的特征。有关以下类图的实现,请参阅源代码。
1)首先运行抽象工厂AbstractFactoryGUI以熟悉程序
2)在下面的设计中,添加一个名为SemiDetacher的类层次结构,其接口和方法与类层次结构House和类层次结构Condo相同。
3)然后,你需要修改类BuildingFactory及其子类中的相应部分,允许创建SemiDetacher子类的对象
4)实现修改后的类图,根据需要添加可能的代码。
5)在JComboBox中添加“SemiDetacher”,并在abstractFactoryGUI中显示。
图2 抽象工厂模式的设计类图
2、 描述已完成的家庭作业,包括
a) 哪些类已添加到现有类层次结构中?
SuperSemiDetacher,MediumSemiDetacher类已添加到现有层次结构中。
b) 现有类与新添加类之间的关系。
MediumBuildingFactory与SuperSemiDetacher和MediumSemiDetacher类之间的关系为关联。
3、 在此处绘制新的类图
4、 添加所需的SemiDetacher层次结构后,
a) BuildingFactory 类层次结构中的哪些类受到了影响?
SuperBuildingFactory与MediumBuildingFactory类受到了影响
b) 在类层次结构中添加了哪些方法?
在BuildingFactory,SuperBuildingFactory,MediumBuildingFactory类层次结构中添加了getSemiDetacherInfo方法。
5、 用不超过120个字的篇幅讨论工厂方法模式与抽象工厂模式的异同。
工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。
最后
以上就是纯真小笼包为你收集整理的创建型软件设计模式实验报告的全部内容,希望文章能够帮你解决创建型软件设计模式实验报告所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复