1 / 43
文档名称:

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

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

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

分享

预览

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

上传人:whetyo 2022/10/3 文件大小:241 KB

下载得到文件列表

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

文档介绍

文档介绍:该【软件设计模式与体系结构 】是由【whetyo】上传分享,文档一共【43】页,该文档可以免费在线阅读,需要了解更多关于【软件设计模式与体系结构 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。计算机科学和技术学院
《软件设计形式和体系构造》
课程作业(一)
(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();
}
【实验结果】
【实验小结】
使用工厂方法访问并且初始化适宜的类的对象,简化了应用程序,应用程序本身不再含有大量的条件语句断定何时选取哪个类。其次,工厂方法实现了一些特殊的某个类的机制,尤其是层次构造不同的类需要不同的初始化方法的时候。
5
抽象工厂方法形式——房屋信息
【实验内容】
(Super)和中等(Medum)别墅(House)和公寓(Condo),增加一个新的类SemiDetacher(半独立式楼宇),并且编写代码实现相应的查询功能。
【添加代码】
1、添加SemiDetacher类:
publicinterfaceSemiDetacher
{
publicStringgetSemiDetacherInfo();
publicStringgetSemiDetacherFeatures();
}
添加SuperSemiDetacher类:
publicclassSuperSemiDetacherimplementsSemiDetacher
5
{
privateStringname;
publicSuperSemiDetacher(StringcName)
{
name=cName;
}
publicStringgetSemiDetacherInfo()
{
return”";
}
publicStringgetSemiDetacherFeatures()
{
return"SuperSemiDetacher”;
}
}
3、添加MediumSemiDetacher类:
publicclassMediumSemiDetacherimplementsSemiDetacher
{
privateStringname;
publicMediumSemiDetacher(StringcName)
6
{
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
【实验结果】
【实验小结】
当客户对象要从一个相关的产品组中创立一个对象,而没有必要知道到底要创立哪个对象时,可以使用抽象工厂形式。假设不使用抽象工厂形式,创立对象的条件语句将会出如今客户程序的许多地方,程序的克维护性差。抽象工厂形式帮助程序员防止了以上所述的重复的、复杂的条件语句,提供必要的创立对象的接口。

最近更新

2024年浙江金华市轨道交通集团限公司招聘30人.. 90页

2024年海南省三沙市事业单位招聘历年高频难、.. 89页

2024年湖北天门市事业单位招聘123人历年高频难.. 90页

2024年湖北武汉东西湖区安全生产监督管理局招.. 88页

2024年湖北省恩施州事业单位招聘历年高频难、.. 60页

2024年湖北省蕲春县事业单位招聘99人历年高频.. 88页

2024年湖北荆州江陵县事业单位招聘161人历年高.. 88页

2024年湖南事业单位招聘一周盘点历年高频难、.. 59页

2024年湖南岳阳君山区公开选调事业工作人员历.. 59页

2024年湖南湘西事业单位招聘高层次人才130人历.. 89页

2024年湖南省岳阳楼区社区网格管理员招聘100人.. 89页

2024年湖南省湘潭市岳塘区事业单位招聘28人历.. 88页

2024年湖南省长沙市人民防空办公室事业单位招.. 60页

2024年湖南衡阳市雁峰区事业单位招聘39人历年.. 59页

2024年湖南长沙市雨花区侯家塘街道招聘10人历.. 89页

2024年版保安员(初级)内部模拟考试题库(培优.. 32页

2024年甘肃卫生职业学院单招职业适应性测试题.. 56页

2024年甘肃财贸职业学院单招职业适应性测试题.. 57页

2024年石家庄财经职业学院单招职业适应性测试.. 54页

2024年福建省传输发射中心事业单位招聘30人历.. 283页

2024年福建闽西地质大队招聘5人历年高频难、易.. 281页

2024年荆州沙市事业单位招聘136人历年高频难、.. 282页

2024年贵安新区社会事务管理局招聘历年高频难.. 280页

2024年贵州凯里经济开发区城乡管理局招聘驾驶.. 283页

2024年贵州毕节市七星关区事业单位招聘148人历.. 275页

UML图书管理系统 8页

高等学校英语应用能力考试B级真题2020年12月 20页

班级卫生管理细则 1 13页

中药泡脚操作规程及流程图 3页

汽车四轮定位的探讨和发展 15页