设计模式实验抽象工厂模式.docx

上传人:b****3 文档编号:26551947 上传时间:2023-06-20 格式:DOCX 页数:13 大小:136.52KB
下载 相关 举报
设计模式实验抽象工厂模式.docx_第1页
第1页 / 共13页
设计模式实验抽象工厂模式.docx_第2页
第2页 / 共13页
设计模式实验抽象工厂模式.docx_第3页
第3页 / 共13页
设计模式实验抽象工厂模式.docx_第4页
第4页 / 共13页
设计模式实验抽象工厂模式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

设计模式实验抽象工厂模式.docx

《设计模式实验抽象工厂模式.docx》由会员分享,可在线阅读,更多相关《设计模式实验抽象工厂模式.docx(13页珍藏版)》请在冰豆网上搜索。

设计模式实验抽象工厂模式.docx

设计模式实验抽象工厂模式

实验报告

课程:

设计模式实验学期:

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(

}

});

 

}}

 

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

当前位置:首页 > 人文社科 > 法律资料

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

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