1 / 46
文档名称:

软件设计模式与体系结构.docx

格式:docx   大小:242KB   页数:46页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件设计模式与体系结构.docx

上传人:nracyx 2022/10/4 文件大小:242 KB

下载得到文件列表

软件设计模式与体系结构.docx

相关文档

文档介绍

文档介绍:该【软件设计模式与体系结构 】是由【nracyx】上传分享,文档一共【46】页,该文档可以免费在线阅读,需要了解更多关于【软件设计模式与体系结构 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。计算机科学和技术学院
《软件设计形式和体系构造》
课程作业(一)
(2016/2017学年第二学期)
学生姓名:雷君
学生专业:软件工程
学生班级:142601
学生学号:202126170108
指导老师:王飞
目录
实验一 1(精品文档请下载)
工厂方法形式-—汽车保险 1(精品文档请下载)
抽象工厂方法形式—-房屋信息 3(精品文档请下载)
实验二 6(精品文档请下载)
组合形式——空军指挥系统 6(精品文档请下载)
适配器形式——客户信息验证 8(精品文档请下载)
实验三 11(精品文档请下载)
桥接形式——几何立体体积 11(精品文档请下载)
访问者形式-—计算机部件销售软件 14(精品文档请下载)
实验四 17(精品文档请下载)
策略形式-—整数排序 17(精品文档请下载)
状态形式——交通信号灯 19(精品文档请下载)
实验五 21(精品文档请下载)
MVC软件体系构造 21(精品文档请下载)
1
实验一
工厂方法形式——汽车保险
【实验内容】
在例2。3的汽车保险管理应用程序实例上添加一个名为LuxuryCarInsurance的类,并且,该类要和其他的类一样能执行相应的功能。(精品文档请下载)
【添加代码】
添加LuxuryCarInsurance类:
publicclassLuxuryCarInsuranceimplementsAutoInsurance(精品文档请下载)
{
privateStringdescription;
publicStringgetInsuranceDescription()
{
description="LuxuryCarInsurance:\n\nLuxuryCarInsurancecoveragepays(精品文档请下载)
formedicalbills"+
”lostwages,rehabilitation,treatmentand/or"+
"funeralcostsforanyoneinjuredorkilled"+
2
”byyourcar。Suchcoveragewillalsopayfor"+
"painandsufferingdamageswhenathird”+
"partysuccessfullysues。";
returndescription;
}
}
添加LuxuryCarPolicyProducer类:
publicclassLuxuryCarPolicyProducerimplementsPolicyProducer(精品文档请下载)
{
publicAutoInsurancegetPolicyObj()//Fruitfactory()(精品文档请下载)
{
returnnewLuxuryCarInsurance();
}
}
添加GUI:
(1)publicstaticfinalStringLUXURYCAR=”LuxuryCarInsurance";(精品文档请下载)
3
(2)(LUXURYCAR);
(3)if((LUXURYCAR)){
pp=newLuxuryCarPolicyProducer();
}
【实验结果】
【实验小结】
使用工厂方法访问并且初始化适宜的类的对象,简化了应用程序,应用程序本身不再含有大量的条件语句断定何时选取哪个类。其次,工厂方法实现了一些特殊的某个类的机制,尤其是层次构造不同的类需要不同的初始化方法的时候。(精品文档请下载)
4
抽象工厂方法形式——房屋信息
【实验内容】
(Super)和中等(Medum)别墅(House)和公寓(Condo),增加一个新的类SemiDetacher(半独立式楼宇),并且编写代码实现相应的查询功能。(精品文档请下载)
【添加代码】
1、添加SemiDetacher类:
publicinterfaceSemiDetacher
{
publicStringgetSemiDetacherInfo();
publicStringgetSemiDetacherFeatures();
}
添加SuperSemiDetacher类:
5
publicclassSuperSemiDetacherimplementsSemiDetacher(精品文档请下载)
{
privateStringname;
publicSuperSemiDetacher(StringcName)
{
name=cName;
}
publicStringgetSemiDetacherInfo()
{
return”";
}
publicStringgetSemiDetacherFeatures()
{
return"SuperSemiDetacher”;
}
}
3、添加MediumSemiDetacher类:
publicclassMediumSemiDetacherimplementsSemiDetacher(精品文档请下载)
{
privateStringname;
6
publicMediumSemiDetacher(StringcName)
{
name=cName;
}
publicStringgetSemiDetacherInfo()
{
return””;
}
publicStringgetSemiDetacherFeatures()
{
return”MediumSemiDetacher”;
}
}
添加BuildingFactory:
publicabstractSemiDetachergetSemiDetacher();
5、添加MediumBuildingFactory:
publicSemiDetachergetSemiDetacher()
{
returnnewMediumSemiDetacher(”MediumSemiDetacher”);(精品文档请下载)
}
7
添加SuperBuildingFactory:
publicSemiDetachergetSemiDetacher()
{
returnnewSuperSemiDetacher(”SuperSemiDetacher”);(精品文档请下载)
}
7、添加GUI:
(1)publicstaticfinalStringSEMIDETACHER="SemiDetacher";(精品文档请下载)
(2)(SEMIDETACHER);
(3)if(()){(精品文档请下载)
SemiDetachercd=();
StringfileNm=cd。getSemiDetacherInfo();
putHouseInfoToScreen(fileNm);
}
8
【实验结果】
【实验小结】
当客户对象要从一个相关的产品组中创立一个对象,而没有必要知道到底要创立哪个对象时,可以使用抽象工厂形式。假设不使用抽象工厂形式,创立对象的条件语句将会出如今客户程序的许多地方,程序的克维护性差。抽象工厂形式帮助程序员防止了以上所述的重复的、复杂的条件语句,提供必要的创立对象的接口。(精品文档请下载)