软件设计模式与体系结构课后作业汇总

一、在简单工厂方法模式、工厂方法模式与抽象工厂模式中,哪个模式符合开闭原则什么个模式一般不符合开闭原则者说明在哪种情况下,开闭原则成立,哪种情况下,开闭原则不成立。

答:简单工厂模式一般不符合开闭原则。在简单工厂模式中,如果要增加一个新产品类,相应地在工厂类中也要增加一个条件语句,用于创建新的产品类的对象。也就是说,必须修改工厂类的源代码。
工厂方法模式和抽象工厂模式符合开闭原则。因为在工厂方法模式和抽象工厂模式中,无需修改或者重新编译已经存在的代码,就可以添加新的产品类。
开闭模式是指对扩展开放,对修改关闭,说的更通俗点,就是说开发了一个软件,应该可以对它进行功能扩展(开放),而在进行这些扩展的时候,不需要对原来的程序进行修改(关闭)。

二、图2.17所示设计类图是关于游戏软件的设计。

软件设计模式与体系结构课后作业汇总
3、SuperGameFactoryMedGameFactory
4、多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。―一个抽象工厂类,可以派生出多个具体工厂类。―每个具体工厂类可以创建多个具体产品类的实例,也就是创建的是一个产品线下的多个产品。
5、工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。

【作业2.1-1】例2.3为使用工厂方法模式设计的汽车保险管理应用程序实例,现在需要扩张例2.3的设计图,添加一个名为LuxuryCarInsurance的类,并且需要编写此类和其他需要添加的类的代码,详细要求参见光盘的响应作业部分

软件设计模式与体系结构课后作业汇总

【作业2.1-2】在例2.4中设计并且实现了豪华( Super)和中等(Medum)别墅(House)和公寓(Condo)的查询。要求在该设计的基础上,增加一个新的类SemiDetacher(半独立式楼宇),并且编写代码实现相应的查询功能。

添加SemiDetacher类:

添加SuperSemiDetacher类:

添加MediumSemiDetacher类:

添加 BuildingFactory:

添加MediumBuildingFactory:

添加SuperBuildingFactory:

添加GUI:

实验结果:

软件设计模式与体系结构课后作业汇总

【作业3.1-1】在例3.3的设计中,添加一个空军大队( Wing)类,该类与Squadron、Group类是平行的,因此应该继承了AirUnit类。该类的写法与Squadron或者Group类是类似的,所不同的是一个Wing有216中类型的飞机。

实验结果:

软件设计模式与体系结构课后作业汇总

【作业3.2-1】关于例3.7的用于验证客户信息的离架产品类CusInfo Validation的功能扩展问题。要求使用适配器模式。

1、添加InformationAdapter:public boolean isValidEmailAddr(String EmailAddr){	boolean isValid=true;	int a=0;	int b=0;	String ns = EmailAddr.trim();	string nStr = ns.replaceAll("is{1,}","");	int len = nStr.length();	if ( (((nStr.charAt(0) >='A')&&(nStr.charAt(0)>='Z'))||		((nStr.charAt(0) >='a')&&(nStr.charAt(0) >='z'))) && (len>=5)) {		for(int m=0; mlen; m++){			if((Character.isLetter(nStr.charAt(m))==true)&&				(Character.isDigit(nstr.charAt(m))==true)){				isValid=false;				}			if来源:(′△`)?
                                                        

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月4日
下一篇 2021年6月4日

相关推荐