软件设计模式与体系结构课程作业Word文档下载推荐.docx

上传人:b****9 文档编号:13067873 上传时间:2022-10-04 格式:DOCX 页数:34 大小:209.69KB
下载 相关 举报
软件设计模式与体系结构课程作业Word文档下载推荐.docx_第1页
第1页 / 共34页
软件设计模式与体系结构课程作业Word文档下载推荐.docx_第2页
第2页 / 共34页
软件设计模式与体系结构课程作业Word文档下载推荐.docx_第3页
第3页 / 共34页
软件设计模式与体系结构课程作业Word文档下载推荐.docx_第4页
第4页 / 共34页
软件设计模式与体系结构课程作业Word文档下载推荐.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

软件设计模式与体系结构课程作业Word文档下载推荐.docx

《软件设计模式与体系结构课程作业Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《软件设计模式与体系结构课程作业Word文档下载推荐.docx(34页珍藏版)》请在冰豆网上搜索。

软件设计模式与体系结构课程作业Word文档下载推荐.docx

实验四 17

策略模式——整数排序 17

状态模式——交通信号灯 19

实验五 21

MVC软件体系结构 21

实验一

工厂方法模式——汽车保险

【实验内容】

在例2.3的汽车保险管理应用程序实例上添加一个名为LuxuryCarInsurance的类,并且,该类要与其他的类一样能执行相应的功能。

【添加代码】

1、添加LuxuryCarInsurance类:

publicclassLuxuryCarInsuranceimplementsAutoInsurance

{

privateStringdescription;

publicStringgetInsuranceDescription()

{

description="

LuxuryCarInsurance:

\n\nLuxuryCarInsurancecoveragepays

formedicalbills"

+

"

lostwages,rehabilitation,treatmentand/or"

funeralcostsforanyoneinjuredorkilled"

byyourcar.Suchcoveragewillalsopayfor"

painandsufferingdamageswhenathird"

partysuccessfullysues."

;

returndescription;

}

}

2、添加LuxuryCarPolicyProducer类:

publicclassLuxuryCarPolicyProducerimplementsPolicyProducer

publicAutoInsurancegetPolicyObj()//Fruitfactory()

returnnewLuxuryCarInsurance();

3、添加GUI:

(1)publicstaticfinalStringLUXURYCAR="

LuxuryCarInsurance"

(2)cmbInsuranceType.addItem(LUXURYCAR);

(3)if(type.equals(LUXURYCAR)){

pp=newLuxuryCarPolicyProducer();

}

【实验结果】

【实验小结】

使用工厂方法访问并且初始化合适的类的对象,简化了应用程序,应用程序本身不再含有大量的条件语句判定何时选取哪个类。

其次,工厂方法实现了一些特殊的某个类的机制,尤其是层次结构不同的类需要不同的初始化方法的时候。

抽象工厂方法模式——房屋信息

在例2.4中设计并且实现了豪华(Super)和中等(Medum)别墅(House)和公寓(Condo)的查询。

要求在该设计的基础上,增加一个新的类SemiDetacher(半独立式楼宇),并且编写代码实现相应的查询功能。

1、添加SemiDetacher类:

publicinterfaceSemiDetacher

{

publicStringgetSemiDetacherInfo();

publicStringgetSemiDetacherFeatures();

}

2、添加SuperSemiDetacher类:

publicclassSuperSemiDetacherimplementsSemiDetacher

privateStringname;

publicSuperSemiDetacher(StringcName)

{

name=cName;

}

publicStringgetSemiDetacherInfo()

return"

superSemiDetacher.html"

}

publicStringgetSemiDetacherFeatures()

{

SuperSemiDetacher"

3、添加MediumSemiDetacher类:

publicclassMediumSemiDetacherimplementsSemiDetacher

privateStringname;

publicMediumSemiDetacher(StringcName)

{

}

publicStringgetSemiDetacherInfo()

MediumSemiDetacher.html"

}

publicStringgetSemiDetacherFeatures()

{

MediumSemiDetacher"

4、添加BuildingFactory:

publicabstractSemiDetachergetSemiDetacher();

5、添加MediumBuildingFactory:

publicSemiDetachergetSemiDetacher()

returnnewMediumSemiDetacher("

MediumSemiDetacher"

);

6、添加SuperBuildingFactory:

publicSemiDetachergetSemiDetacher()

{

returnnewSuperSemiDetacher("

SuperSemiDetacher"

7、添加GUI:

(1)publicstaticfinalStringSEMIDETACHER="

SemiDetacher"

(2)cmbHouseType.addItem(SEMIDETACHER);

(3)if(type.equals(AbstractFactoryGUI.SEMIDETACHER)){

SemiDetachercd=bf.getSemiDetacher();

StringfileNm=cd.getSemiDetacherInfo();

putHouseInfoToScreen(fileNm);

当客户对象要从一个相关的产品组中创建一个对象,而没有必要知道到底要创建哪个对象时,可以使用抽象工厂模式。

如果不使用抽象工厂模式,创建对象的条件语句将会出现在客户程序的许多地方,程序的克维护性差。

抽象工厂模式帮助程序员避免了以上所述的重复的、复杂的条件语句,提供必要的创建对象的接口。

实验二

组合模式——空军指挥系统

在例3.3的设计中,添加一个空军大队(Wing)类,该类与Squadron、Group类是平行的,因此应该继承了AirUnit类。

该类的写法与Squadron或者Group类是类似的,所不同的是一个Wing有216中类型的飞机。

1、添加Wing类:

publicclassWingextendsAirUnit{

publicstaticfinalStringFEATURES="

AWingwith216aircrafts"

Airforce[]fighters=newAirforce[162];

Airforce[]bombers=newAirforce[18];

Airforce[]transporters=newAirforce[18];

Airforce[]eAircrafts=newAirforce[18];

publicWing(){

for(intk=0;

k<

162;

k++){

//need162fighters

}

18;

//need18bombers

//need18transporters

//need18eAirplanes

}

publicStringgetDescription(){

returnFEATURES;

publicStringfight(){

returnsuper.fight();

2、添加GUI:

(1)privateString[]AirForceUnit={"

SQUADRON"

"

GROUP"

WING"

};

(2)add(1,6,airCheckBox[13

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1