软件测试与体系结构报告Word格式.docx
《软件测试与体系结构报告Word格式.docx》由会员分享,可在线阅读,更多相关《软件测试与体系结构报告Word格式.docx(38页珍藏版)》请在冰豆网上搜索。
![软件测试与体系结构报告Word格式.docx](https://file1.bdocx.com/fileroot1/2022-10/19/cbd91836-16d6-43cc-8144-4903163d4777/cbd91836-16d6-43cc-8144-4903163d47771.gif)
第1章工厂模式
1.1简单工厂模式
1.1.1要求
设计一个任务创建仓。
当用户在仓门口喊一声:
“汉子!
”该仓就创建一个男性角色
当用户喊“妹子!
”,该仓就创建一个女性角色
当用户喊“随便!
”,该仓就随机创建一个角色性别
1.1.2代码
Women.java
publicclasswomenextendsSimpleFactory{
voidCreateCharator(){
System.out.println("
已创建一个女性角色!
"
);
}
}
man.java
publicclassmanextendsSimpleFactory{
已创建一个男性角色!
Person.java
importjava.util.Scanner;
publicclassPerson{
publicstaticvoidmain(Stringargs[]){
Scannerreader=newScanner(System.in);
System.out.println("
请输入你要创建的角色(“汉子”、“妹子”或“随便”):
Strings=reader.next();
reader.close();
if(s.equals("
汉子"
)){
manmen=newman();
men.CreateCharator();
elseif(s.equals("
妹子"
womenwm=newwomen();
wm.CreateCharator();
随便"
intn=(int)((Math.random()*10)%2);
if(n==0){
manmen=newman();
men.CreateCharator();
}
else{
womenwm=newwomen();
wm.CreateCharator();
SimpleFactory.java
publicabstractclassSimpleFactory{
abstractvoidCreateCharator();
1.1.3UML
1.2工厂模式
1.2.1要求
设计一个游戏职业的构造器,可以为用户构造不同的职业
职业有,建筑师、魔法师、医师、金工技师、厨师。
请根据用户传递的角色职业信息和姓名,为用户生成不同的职业
1.2.2代码
metalworkingTechnicians.java
publicclassmetalworkingTechniciansextendsGame{
voidbuild(){
已创建一个金工技师角色!
名字为:
+name);
magician.java
publicclassmagicianextendsGame{
已创建一个魔法师角色!
名字为:
Game.java
publicabstractclassGame{
Stringname;
abstractvoidbuild();
architect.java
publicclassarchitectextendsGame{
已创建一个建筑师角色!
cook.java
publicclasscookextendsGame{
已创建一个厨师角色!
doctor.java
publicclassdoctorextendsGame{
已创建一个医生角色!
Factory.java
publicclassFactory{
请选择要创建的角色:
1、建筑师2、魔法师3、医师4、金工技师5、厨师"
inti;
Scannerreader=newScanner(System.in);
i=reader.nextInt();
if(i==1){
architectmyarchitect=newarchitect();
System.out.print("
请输入角色名字:
myarchitect.name=reader.next();
myarchitect.build();
elseif(i==2){
magicianmymagician=newmagician();
mymagician.name=reader.next();
mymagician.build();
elseif(i==3){
doctormydoctor=newdoctor();
mydoctor.name=reader.next();
mydoctor.build();
elseif(i==4){
metalworkingTechniciansmymetalworkingTechnicians=newmetalworkingTechnicians();
mymetalworkingTechnicians.name=reader.next();
mymetalworkingTechnicians.build();
elseif(i==5){
cookmycook=newcook();
mycook.name=reader.next();
mycook.build();
System.out.println("
创建失败!
reader.close();
1.2.3UML
1.3抽象工厂模式
1.3.1要求
为游戏人物创建不同的外观
分为:
服饰、头发、眼镜、肤色、身高
要求不同的职业有不同的外观范围,同一职业外观相同。
也可以设计成不同职业不同外观,同一职业根据等级不同,外观也有细微差异(如头发长短、瞳孔颜色深浅、身高高矮、服饰配饰多少的差异等等)
1.3.2代码
clothes.java
publicinterfaceclothes{
voidClothestype();
cookBuild.java
publicclasscookBuildextendsFactoryimplementsclothes,eye,hair,skin,height{
publicvoidClothestype(){
Clothestype="
厨师服"
;
publicvoidEyecolor(){
Eyecolor="
黑色眼睛"
publicvoidHaircolor(){
Haircolor="
黑色头发"
publicvoidSkincolor(){
Skincolor="
黄色皮肤"
publicvoidHeightcolor(){
Heightcolor="
身高177cm"
voidCreateClothes(){
System.out.println("
已创建厨师角色!
System.out.print(Clothestype+'
\t'
voidCreateHair(){
System.out.print(Haircolor+'
voidCreateEye(){
System.out.print(Eyecolor+'
voidCreateSkin(){
System.out.print(Skincolor+'
voidCreateHeight(){
System.out.print(Heightcolor+'
}
doctorBuild.java
publicclassdoctorBuildextendsFactoryimplementsclothes,eye,hair,skin,height{
医生服"
蓝色眼睛"
Haircolor