文档介绍:该【软件设计模式与体系结构 】是由【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
【实验结果】
【实验小结】
当客户对象要从一个相关的产品组中创立一个对象,而没有必要知道到底要创立哪个对象时,可以使用抽象工厂形式。假设不使用抽象工厂形式,创立对象的条件语句将会出如今客户程序的许多地方,程序的克维护性差。抽象工厂形式帮助程序员防止了以上所述的重复的、复杂的条件语句,提供必要的创立对象的接口。