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

上传人:牧羊曲112 文档编号:1816727 上传时间:2022-12-20 格式:DOCX 页数:8 大小:291.61KB
返回 下载 相关 举报
设计模式实验4 抽象工厂模式.docx_第1页
第1页 / 共8页
设计模式实验4 抽象工厂模式.docx_第2页
第2页 / 共8页
设计模式实验4 抽象工厂模式.docx_第3页
第3页 / 共8页
设计模式实验4 抽象工厂模式.docx_第4页
第4页 / 共8页
设计模式实验4 抽象工厂模式.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

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

1、 实验报告课程: 设计模式实验 学期: 2010-2011学年 第一学期 任课教师: 专业: 学号: 姓名: 成绩: 实验4 抽象工厂模式1.题目: 使用抽象工厂模式实现一个DIY电脑店,其中的电脑配置有三个种类:学生版、家庭装、豪华版。2.模式设计的UML类图:3.程序源代码:(1)计算机配置工厂接口ComputerConfigurationFactory.java:public interface ComputerConfigurationFactorypublic Cpu createCpu();public Ram createRam();public Mainboard create

2、Mainboard();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 creat

3、eMainboard() 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(); pub

4、lic 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 ComputerConfigurati

5、onFactorypublic 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)电脑各种配置的接

6、口: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

7、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 Stri

8、ng 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 Mainboardp

9、ublic 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 impl

10、ements 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

11、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 a

12、bstract class Computer String name;Cpu cpu;Ram ram;Mainboard mainboard;Harddisk harddisk;Display display;public abstract void prepare();public void setName(String name) this.name=name; public String getName() return name; public String getCpu() return cpu.toString(); public String getRam() return ra

13、m.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 Configur

14、ationFactory;public PrepareComputer(ComputerConfigurationFactory ConfigurationFactory)this.ConfigurationFactory = ConfigurationFactory;public void prepare()cpu = ConfigurationFactory.createCpu();ram = ConfigurationFactory.createRam();mainboard = ConfigurationFactory.createMainboard();harddisk = Conf

15、igurationFactory.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.pre

16、pare();return computer;(12)抽象计算机店类的子类DIYComputerStore.java:public class DIYComputerStore extends ComputerStoreprotected Computer createrComputer(String item)Computer computer = null;ComputerConfigurationFactory studentConfigurationFactory = new StudentComputerConfigurationFactory();ComputerConfigura

17、tionFactory homeConfigurationFactory = new HomeComputerConfigurationFactory();ComputerConfigurationFactory deluxeConfigurationFactory = new DeluxeComputerConfigurationFactory();if(item.equals(学生版)computer = new PrepareComputer(studentConfigurationFactory);computer.setName(学生版);else if(item.equals(家庭

18、装)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

19、 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); jRa

20、dioButton3.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(); jTextFi

21、eld5.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.

22、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)

23、; jTextField4.setText(configuration3); jTextField5.setText(configuration4); public String getConfiguration() ComputerStore DIYstore = new DIYComputerStore(); Computer computer = null; String configuration = new String5; if(jRadioButton1.isSelected() computer = DIYstore.orderComputer(学生版); else if(jR

24、adioButton2.isSelected() computer = DIYstore.orderComputer(家庭装); else if(jRadioButton3.isSelected() computer = DIYstore.orderComputer(豪华版); configuration0 = computer.getCpu(); configuration1 = computer.getRam(); configuration2 = computer.getMainboard(); configuration3 = computer.getHarddisk(); configuration4 = computer.getDisplay(); return configuration; public static void main(String args) java.awt.EventQueue.invokeLater(new Runnable() public void run() new DIYStore().setVisible(true); );8

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号