设计模式实验4 抽象工厂模式.doc_第1页
设计模式实验4 抽象工厂模式.doc_第2页
设计模式实验4 抽象工厂模式.doc_第3页
设计模式实验4 抽象工厂模式.doc_第4页
设计模式实验4 抽象工厂模式.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告课程: 设计模式实验 学期: 2010-2011学年 第一学期 任课教师: 专业: 学号: 姓名: 成绩: 实验4 抽象工厂模式1.题目: 使用抽象工厂模式实现一个DIY电脑店,其中的电脑配置有三个种类:学生版、家庭装、豪华版。2.模式设计的UML类图:3.程序源代码:(1)计算机配置工厂接口ComputerConfigurationFactory.java:public interface ComputerConfigurationFactorypublic Cpu createCpu();public Ram createRam();public Mainboard createMainboard();public Harddisk createHarddisk();public Display createDisplay();(2)计算机配置工厂接口的各个子类:public class StudentComputerConfigurationFactory implements ComputerConfigurationFactorypublic Cpu createCpu() return new StudentCpu(); public Ram createRam() return new StudentRam(); public Mainboard createMainboard() return new StudentMainboard(); public Harddisk createHarddisk() return new StudentHarddisk(); public Display createDisplay() return new StudentDisplay(); public class HomeComputerConfigurationFactory implements ComputerConfigurationFactorypublic Cpu createCpu() return new HomeCpu(); public Ram createRam() return new HomeRam(); public Mainboard createMainboard() return new HomeMainboard(); public Harddisk createHarddisk() return new HomeHarddisk(); public Display createDisplay() return new HomeDisplay(); public class DeluxeComputerConfigurationFactory implements ComputerConfigurationFactorypublic Cpu createCpu() return new DeluxeCpu(); public Ram createRam() return new DeluxeRam(); public Mainboard createMainboard() return new DeluxeMainboard(); public Harddisk createHarddisk() return new DeluxeHarddisk(); public Display createDisplay() return new DeluxeDisplay(); (3)电脑各种配置的接口:public interface Cpu public String toString();public interface Ram public String toString();public interface Mainboard public String toString();public interface Harddisk public String toString();public interface Display public String toString();(4)电脑配置Cpu接口的各个子类:public class StudentCpu implements Cpupublic String toString() return Intel 奔腾双核 E5400(盒); public class HomeCpu implements Cpupublic String toString() return Intel 酷睿i5 650(盒); public class DeluxeCpu implements Cpupublic String toString() return Intel 酷睿i7 980X(至尊版); (5)电脑配置Ram接口的各个子类:public class StudentRam implements Rampublic String toString() return 宇瞻2GB DDR3 1333(经典系列); public class HomeRam implements Rampublic String toString() return 金士顿4GB DDR3 1333(骇客神条套装); public class DeluxeRam implements Rampublic String toString() return 海盗船TW3X4G2000C9DF; (6)电脑配置Mainboard接口的各个子类:public class StudentMainboard implements Mainboardpublic String toString() return 铭瑄 MS-M3A890G; public class HomeMainboard implements Mainboardpublic String toString() return 技嘉GA-870A-UD3; public class DeluxeMainboard implements Mainboardpublic String toString() return 华硕Rampage III Extreme; (7)电脑配置Harddisk接口的各个子类:public class StudentHarddisk implements Harddiskpublic String toString() return 希捷250GB 7200.12 8M; public class HomeHarddisk implements Harddiskpublic String toString() return 三星500GB 7200转 16M(串/金宝); public class DeluxeHarddisk implements Harddiskpublic String toString() return 希捷Cheetah 15K.7 600GB; (8)电脑配置Display接口的各个子类:public class StudentDisplay implements Displaypublic String toString() return 飞利浦193E1SB; public class HomeDisplay implements Displaypublic String toString() return 三星P2450H; public class DeluxeDisplay implements Displaypublic String toString() return 戴尔UltraSharp 2408WFP; (9)抽象产品计算机类Computer.java:public abstract class Computer String name;Cpu cpu;Ram ram;Mainboard mainboard;Harddisk harddisk;Display display;public abstract void prepare();public void setName(String name) =name; public String getName() return name; public String getCpu() return cpu.toString(); public String getRam() return ram.toString(); public String getMainboard() return mainboard.toString(); public String getHarddisk() return harddisk.toString(); public String getDisplay() return display.toString(); (10)抽象产品计算机类的子类PrepareComputer.java:public class PrepareComputer extends ComputerComputerConfigurationFactory ConfigurationFactory;public PrepareComputer(ComputerConfigurationFactory ConfigurationFactory)this.ConfigurationFactory = ConfigurationFactory;public void prepare()cpu = ConfigurationFactory.createCpu();ram = ConfigurationFactory.createRam();mainboard = ConfigurationFactory.createMainboard();harddisk = ConfigurationFactory.createHarddisk();display = ConfigurationFactory.createDisplay();(11)抽象计算机店类ComputerStore.java:public abstract class ComputerStore protected abstract Computer createrComputer(String item);public Computer orderComputer(String type)Computer computer = createrComputer(type);computer.prepare();return computer;(12)抽象计算机店类的子类DIYComputerStore.java:public class DIYComputerStore extends ComputerStoreprotected Computer createrComputer(String item)Computer computer = null;ComputerConfigurationFactory studentConfigurationFactory = new StudentComputerConfigurationFactory();ComputerConfigurationFactory homeConfigurationFactory = new HomeComputerConfigurationFactory();ComputerConfigurationFactory deluxeConfigurationFactory = new DeluxeComputerConfigurationFactory();if(item.equals(学生版)computer = new PrepareComputer(studentConfigurationFactory);computer.setName(学生版);else if(item.equals(家庭装)computer = new PrepareComputer(homeConfigurationFactory);computer.setName(家庭装);else if(item.equals(豪华版)computer = new PrepareComputer(deluxeConfigurationFactory);computer.setName(豪华版);return computer;(13)实现用户界面的主类DIYStore.java:(由于代码过长,只列出主要部分)public class DIYStore extends javax.swing.JFrame public DIYStore() super(XXXXX); initComponents(); private void initComponents() 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 void jButton1ActionPerformed(java.awt.event.ActionEvent evt) System.exit(0); private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) buttonGroup1.clearSelection(); jTextField1.setText();jTextField2.setText(); jTextField3.setText();jTextField4.setText(); jTextField5.setText(); private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) String configuration = getConfiguration(); jTextField1.setText(configuration0); jTextField2.setText(configuration1); jTextField3.setText(configuration2); jTextField4.setText(configuration3); jTextField5.setT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论