




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告课程:
设计模式实验
学期:
2010-2011
学年 第一学期
任课教师:专业:
学号:
姓名:
成绩:实验4 抽象工厂模式题目:使用抽象工厂模式实现一个 DIY电脑店,其中的电脑配置有三个种类:学生版、家庭装、豪华版。模式设计的UML类图:程序源代码:1)计算机配置工厂接口ComputerConfigurationFactory.java:public interface ComputerConfigurationFactory{public CpucreateCpu();public RamcreateRam();public MainboardcreateMainboard();public HarddiskcreateHarddisk();public DisplaycreateDisplay();}(2)计算机配置工厂接口的各个子类:publicclassStudentComputerConfigurationFactoryimplementsComputerConfigurationFactory{publicCpucreateCpu(){returnnewStudentCpu();}publicRamcreateRam(){returnnewStudentRam();}publicMainboardcreateMainboard(){returnnewStudentMainboard();}publicHarddiskcreateHarddisk(){returnnewStudentHarddisk();}publicDisplaycreateDisplay(){returnnewStudentDisplay();}}publicclassHomeComputerConfigurationFactoryimplementsComputerConfigurationFactory{publicCpucreateCpu(){returnnewHomeCpu();}publicRamcreateRam(){returnnewHomeRam();}publicMainboardcreateMainboard(){returnnewHomeMainboard();}publicHarddiskcreateHarddisk(){returnnewHomeHarddisk();}publicDisplaycreateDisplay(){returnnewHomeDisplay();}}public class DeluxeComputerConfigurationFactoryComputerConfigurationFactory
implements{publicCpucreateCpu(){returnnewDeluxeCpu();}publicRamcreateRam(){returnnewDeluxeRam();}publicMainboardcreateMainboard(){returnnewDeluxeMainboard();}publicHarddiskcreateHarddisk(){returnnewDeluxeHarddisk();}publicDisplaycreateDisplay(){returnnewDeluxeDisplay();}}(3)电脑各种配置的接口:public
interface
Cpu{public
StringtoString();}public
interface
Ram{public StringtoString();}public
interface
Mainboard{public
StringtoString();}public
interface
Harddisk{public StringtoString();}public
interface
Display{public StringtoString();}(4)电脑配置Cpu接口的各个子类:public
class
StudentCpu
implements Cpu{public StringtoString(){ return "Intel 奔腾双核
E5400(
盒)";
}}public
class
HomeCpuimplements
Cpu{public StringtoString(){ return "Intel 酷睿i5650
(盒)";
}}public
class DeluxeCpu implements Cpu{public StringtoString(){ return "Intel 酷睿i7980X
(至尊版)
";}}(5)电脑配置Ram接口的各个子类:public
class
StudentRam
implements
Ram{public StringtoString(){ return "宇瞻2GBDDR31333(经典系列)
";
}}public
class
HomeRamimplements
Ram{public StringtoString(){ return "金士顿4GBDDR31333(骇客神条套装
)";}}public
class
DeluxeRam
implements
Ram{public StringtoString(){ return "海盗船TW3X4G2000C9DF"; }}(6)电脑配置Mainboard接口的各个子类:public
class StudentMainboard
implements Mainboard{public StringtoString(){ return "铭瑄MS-M3A890G";
}}public{
class HomeMainboard implements Mainboardpublic{
StringtoString()return "技嘉GA-870A-UD3"; }}public
class DeluxeMainboard
implements Mainboard{public StringtoString(){ return "华硕RampageIIIExtreme"
; }}(7)电脑配置
Harddisk
接口的各个子类:public
class
StudentHarddisk
implements
Harddisk{public StringtoString(){ return "希捷250GB7200.128M";
}}public
class
HomeHarddisk
implements
Harddisk{public StringtoString(){ return "三星500GB7200转
16M(串/金宝)";
}}public
class DeluxeHarddisk
implements
Harddisk{public StringtoString(){ return "希捷Cheetah15K.7600GB"
;
}}(8)电脑配置Display接口的各个子类:public
class
StudentDisplay
implements Display{public StringtoString(){ return "飞利浦193E1SB"; }}public
class
HomeDisplay
implements Display{public{
StringtoString()return "三星P2450H"; }}public
class
DeluxeDisplay
implements Display{public StringtoString(){ return "戴尔UltraSharp2408WFP" ; }}9)抽象产品计算机类Computer.java:public abstract class Computer{String name;Cpucpu;Ramram;Mainboard mainboard;Harddisk harddisk;Display display ;public abstract voidprepare();public voidsetName(Stringname){=name;}public StringgetName(){returnname;}publicStringgetCpu(){returncpu.toString();}publicStringgetRam(){returnram.toString();}publicStringgetMainboard(){returnmainboard.toString();}publicStringgetHarddisk(){returnharddisk.toString();}publicStringgetDisplay(){returndisplay.toString();}}10)抽象产品计算机类的子类PrepareComputer.java:public class PrepareComputer extendsComputer{ComputerConfigurationFactory ConfigurationFactory ;public PrepareComputer(ComputerConfigurationFactoryConfigurationFactory){this.ConfigurationFactory
=ConfigurationFactory;}public{
voidprepare()cpu= ConfigurationFactory .createCpu();ram= ConfigurationFactory .createRam();mainboard= ConfigurationFactory .createMainboard();harddisk =ConfigurationFactory .createHarddisk();display = ConfigurationFactory .createDisplay();}}11)抽象计算机店类ComputerStore.java:public
abstract
class ComputerStore{protected abstract ComputercreaterComputer(Stringitem);public ComputerorderComputer(Stringtype){Computercomputer=createrComputer(type);;computer.prepare();return computer;}}12)抽象计算机店类的子类DIYComputerStore.java:publicclassDIYComputerStoreextendsComputerStore{protectedComputercreaterComputer(Stringitem){Computercomputer=null;ComputerConfigurationFactorystudentConfigurationFactory=newStudentComputerConfigurationFactory();ComputerConfigurationFactoryhomeConfigurationFactory=newHomeComputerConfigurationFactory();ComputerConfigurationFactorydeluxeConfigurationFactory=newDeluxeComputerConfigurationFactory();if(item.equals("学生版")){computer=newPrepareComputer(studentConfigurationFactory);}computer.setName("学生版");elseif(item.equals("家庭装")){computer=newPrepareComputer(homeConfigurationFactory);computer.setName("家庭装");}else if(item.equals( "豪华版")){computer= newPrepareComputer(deluxeConfigurationFactory);computer.setName( "豪华版");}return computer;}}13)实现用户界面的主类DIYStore.java:(由于代码过长,只列出主要部分)public class DIYStore extendsjavax.swing.JFrame{public DIYStore(){super("XXXXX");initComponents();}private voidinitComponents(){ jPanel1.setBorder(javax.swing.BorderFactory. createTitledBorder ("种类"));buttonGroup1.add(jRadioButton1 );jRadioButton1 .setText( "学生版");buttonGroup1.add(jRadioButton2 );jRadioButton2 .setText( "家庭装");buttonGroup1.add(jRadioButton3 );jRadioButton3 .setText( "豪华版");jPanel2.setBorder(javax.swing.BorderFactory. createTitledBorder ("配置"));jLabel1.setText( "CPU:");jLabel2.setText( "内存:");jLabel3.setText( "主板:");jLabel4.setText( "硬盘:");jLabel5.setText( "显示器:");jTextField1 .setText( "");jTextField2 .setText( "");jTextField3 .setText( "");jTextField4 .setText( ""); jTextField5 .setText( "");jButton1 .setText( "退出");jButton2 .setText( "清空");jButton3 .setText( "确定");}private voidjButton1ActionPerformed(java.awt.event.ActionEventevt){System. exit(0);}private voidjButton2ActionPerformed(java.awt.event.ActionEventevt){buttonGroup1.clearSelection();jTextField1 .setText( "");jTextField2 .setText( "");jTextField3 .setText( "");jTextField4 .setText( "");jTextField5 .setText( "");}privatevoidjButton3ActionPerformed(java.awt.event.ActionEventevt){String[]configuration=getConfiguration();jTextField1 .setText(configuration[0]);jTextField2 .setText(configuration[1]);jTextField3 .setText(configuration[2]);jTextField4 .setText(configuration[3]);jTextField5 .setText(conf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《数据网组建与维护》课件-4.3任务3 DHCP实现IP动态管理
- 安全生活主题课件
- 2025年职业指导师专业能力测试卷:跨文化沟通与职业适应
- 2025年房地产经纪人职业资格考试模拟试卷(合同管理篇)
- 2025年初中地理学业水平考试模拟试题及答案解析(图表解读难点)
- 2025年消防安全培训考试题库:消防安全隐患排查现场操作试题
- 2025年监理工程师职业能力测试卷:建筑工程施工合同履行与争议解决试题
- 剪映电脑版课件
- 中医养生馆创新创业计划
- 化学世界探秘
- 2024-2025学年第二学期天域全国名校协作体高三3月联考 地理试卷(含答案)
- 学校2025年每日两小时体育活动方案-阳光体育活力四溢
- B超的基本知识
- 锤击式PHC预应力混凝土管桩贯入度的控制
- 2025年广西旅发置业集团有限公司招聘笔试参考题库含答案解析
- 2025年人教版新教材数学一年级下册教学计划(含进度表)
- GB/T 45107-2024表土剥离及其再利用技术要求
- 叙事医学培训课件
- 《劳动纪律》课件
- 小学数学一年级上册数与代数
- 失能老年人健康管理模式研究进展
评论
0/150
提交评论