设计模式实验抽象工厂模式.docx
- 文档编号:14060202
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:13
- 大小:136.52KB
设计模式实验抽象工厂模式.docx
《设计模式实验抽象工厂模式.docx》由会员分享,可在线阅读,更多相关《设计模式实验抽象工厂模式.docx(13页珍藏版)》请在冰点文库上搜索。
设计模式实验抽象工厂模式
实验报告
课程:
设计模式实验学期:
2010-2011学年第一学期
任课教师:
专业:
学号:
姓名:
成
绩:
实验4抽象工厂模式
1.题目:
使用抽象工厂模式实现一个DIY电脑店,其中的电脑配置有三个
种类:
学生版、家庭装、豪华版。
~terfaDe>>
CpmtuleiJ.nficruraticiiiFactor:
reateJpuf)'rR^tp^aTTii:
crvatsMainboardQ
irentcHarddciedLeDi^p^yij
DirStore
cresdeCGmputerO
«nterfa:
£»
Cpu
toString;:
STud^rtGpu
2.模式设计的UML类图:
3.程序源代码:
(1)计算机配置工厂接口:
publicinterfaceComputerConfigurationFactory
publicCpucreateCpu();
publicRamcreateRam();
publicMainboardcreateMainboard();
publicHarddiskcreateHarddisk();
publicDisplaycreateDisplay();
}
(2)计算机配置工厂接口的各个子类:
implements
publicclassStudentComputerConfigurationFactory
ComputerConfigurationFactory
{
publicCpucreateCpu()
{returnnewStudentCpu();}
publicRamcreateRam()
{returnnewStudentRam();}
publicMainboardcreateMainboard()
{returnnewStudentMainboard();}
publicHarddiskcreateHarddisk()
{returnnewStudentHarddisk();}
publicDisplaycreateDisplay()
{returnnewStudentDisplay();}
}
implements
publicclassHomeComputerConfigurationFactory
ComputerConfigurationFactory
{
publicCpucreateCpu()
{returnnewHomeCpu();}
publicRamcreateRam()
{returnnewHomeRam();}
publicMainboardcreateMainboard()
{returnnewHomeMainboard();}
publicHarddiskcreateHarddisk()
{returnnewHomeHarddisk();}
{returnnewHomeDisplay();}publicclassDeluxeComputerConfigurationFactoryimplementsComputerConfigurationFactory
{
publicCpucreateCpu()
{returnnewDeluxeCpu();}
publicRamcreateRam()
{returnnewDeluxeRam();}
publicMainboardcreateMainboard()
{returnnewDeluxeMainboard();}
publicHarddiskcreateHarddisk()
{returnnewDeluxeHarddisk();}
publicDisplaycreateDisplay()
{returnnewDeluxeDisplay();}
}
(3)电脑各种配置的接口:
publicStringtoString();
}
publicinterfaceRam
{
publicStringtoString();
}
publicinterfaceMainboard
{
publicStringtoString();
}
publicinterfaceHarddisk
{
publicStringtoString();
}
publicStringtoString();
(4)电脑配置Cpu接口的各个子类:
publicclassStudentCpuimplementsCpu{
publicStringtoString()
{return"Intel奔腾双核E5400(盒)";}}
publicclassHomeCpuimplementsCpu
{
publicStringtoString()
{return"Intel酷睿i5650(盒)";}
}
publicclassDeluxeCpuimplementsCpu
{
publicStringtoString()
{return"Intel酷睿i7980X(至尊版)";}
(5)电脑配置Ran接口的各个子类:
publicclassStudentRamimplementsRam
{
publicStringtoString()
{return"宇瞻2GBDDR31333(经典系列)";}
}
publicclassHoneRaninplenentsRan
{
publicStringtoString()
{return"金士顿4GBDDR31333骇客神条套装)";}
}
publicclassDeluxeRaninplenentsRan
{
publicStringtoString()
{return"海盗船TW3X4G2000C9DF}
}
(6)电脑配置Mainboard接口的各个子类:
publicStringtoString()
{return"铭瑄MS-M3A890G;"}
}
publicclassHomeMainboardimplementsMainboard
{
publicStringtoString()
{return"技嘉GA-870A-UD3"}
}
publicclassDeluxeMainboardimplementsMainboard
{
publicStringtoString()
{return"华硕RampageIIIExtreme";}
}
(7)电脑配置Harddisk接口的各个子类:
publicclassStudentHarddiskimplementsHarddisk
{
publicStringtoString()
{return"希捷250GB8M";}
publicclassHomeHarddiskimplementsHarddisk{
publicStringtoString()
{return"三星500GB7200专16M(串/金宝)";}}
publicclassDeluxeHarddiskimplementsHarddisk
{
publicStringtoString()
{return"希捷Cheetah600GB";}
}
(8)电脑配置Display接口的各个子类:
publicclassStudentDisplayimplementsDisplay
{
publicStringtoString()
{return"飞利浦193E1SB";}
}
publicStringtoString()
{return"三星P2450H";}
}
publicclassDeluxeDisplayimplementsDisplay{
publicStringtoString()
{return"戴尔UltraSharp2408WFP";}
}
(9)抽象产品计算机类:
publicabstractclassComputer
{
Stringname;
Cpucpu;
Ramram;
Mainboardmainboard;
Harddiskharddisk;
Displaydisplay;
publicabstractvoidprepare();
{=name;}
publicStringgetName()
{returnname;}
publicStringgetCpu()
{return();}
publicStringgetRam()
{return();}
publicStringgetMainboard()
{return();}
publicStringgetHarddisk()
{return();}
publicStringgetDisplay()
{return();}
}
(10)抽象产品计算机类的子类:
publicclassPrepareComputerextendsComputer
ComputerConfigurationFactoryConfigurationFactory
publicPrepareComputer(ComputerConfigurationFactory
ConfigurationFactory)
{
=ConfigurationFactory;
publicvoidprepare(){
cpu=();
ram=();mainboard=();harddisk=();display=();
}
}
11)抽象计算机店类:
publicabstractclassComputerStore
{
protectedabstractComputercreaterComputer(Stringitem);
publicComputerorderComputer(Stringtype)
{
Computercomputer=createrComputer(type);;
();
returncomputer;
}
}
(12)抽象计算机店类的子类:
publicclassDIYComputerStoreextendsComputerStore
{
protectedComputercreaterComputer(Stringitem)
{
Computercomputer=null;
ComputerConfigurationFactorystudentConfigurationFactory=
newStudentComputerConfigurationFactory();
ComputerConfigurationFactoryhomeConfigurationFactory
new
HomeComputerConfigurationFactory();
ComputerConfigurationFactorydeluxeConfigurationFactory=
newDeluxeComputerConfigurationFactory();
if("学生版"))
{
computer=new
PrepareComputer(studentConfigurationFactory);
("学生版");
}
elseif("家庭装"))
{
computer=new
PrepareComputer(homeConfigurationFactory);
("家庭装");
}
elseif("豪华版"))
computer=new
PrepareComputer(deluxeConfigurationFactory);
("豪华版");
}
returncomputer;
}
}
(13)实现用户界面的主类:
(由于代码过长,只列出主要部分)
publicclassDIYStoreextends{
publicDIYStore(){
super("XXXXX");
initComponents();
}
privatevoidinitComponents(){"种类"));
(jRadioButton1);
("学生版");
(jRadioButton2);("家庭装");
(jRadioButton3);("豪华版");
"配置"));
("CPU:
");("内存:
");
("主板:
");("硬盘:
");
III!
);(
III!
);
("显示器:
");("");
("退出");("清空");
("确定");
}
privatevoidjButton1ActionPerformedevt)
privatevoidjButton2ActionPerformedevt){
();
III!
);
privatevoidjButton3ActionPerformedevt){String[]configuration=getConfiguration();
(configuration[0]);
(configuration[1]);
(configuration[2]);
(configuration[3]);
(configuration[4]);
}
publicString[]getConfiguration()
{
ComputerStoreDIYstore=newDIYComputerStore();
Computercomputer=null;
String[]configuration=newString[5];
if())
computer=("学生版");
elseif())
computer=("家庭装");
elseif())
computer=("豪华版");
configuration[0]=();
configuration[1]=();
configuration[2]=();
configuration[3]=();
configuration[4]=();
returnconfiguration;
}
publicstaticvoidmain(Stringargs[]){
Runnable(){
publicvoidrun(){
true);
newDIYStore().setVisible(
}
});
}}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 模式 实验 抽象 工厂