1、设计模式实验抽象工厂模式实验报告课程:设计模式实验 学期:2010-2011学年 第一学期任课教师:专业:学号: 姓名: 成绩:实验4抽象工厂模式1.题目:使用抽象工厂模式实现一个 DIY电脑店,其中的电脑配置有三个种类:学生版、家庭装、豪华版。 terfaDeCpmt u lei J.nficruraticiiiF actor :reateJpuf) rRtpaTTii:crvatsMainboard QirentcHardd ciedLeDipyijDirStorecresdeCGmputerO nterfa:CputoString;:STudrtGpu2.模式设计的UML类图:3.程序源
2、代码:(1)计算机配置工厂接口:public in terface ComputerC on figuratio nFactorypublic Cpu createCpu();public Ram createRam();public Mainboard createMainboard();public Harddisk createHarddisk();public Display createDisplay();(2)计算机配置工厂接口的各个子类:implementspublic class StudentComputerConfigurationFactoryComputerConfig
3、urationFactorypublic Cpu createCpu() return newStudentCpu(); public Ram createRam() return newStudentRam(); public Mainboard createMainboard() return newStudentMainboard(); public Harddisk createHarddisk() return newStudentHarddisk(); public Display createDisplay() return newStudentDisplay(); implem
4、entspublic class HomeComputerConfigurationFactoryComputerConfigurationFactorypublic Cpu createCpu() return newHomeCpu(); public Ram createRam() return newHomeRam(); public Mainboard createMainboard() return newHomeMainboard(); public Harddisk createHarddisk() return newHomeHarddisk(); return newHome
5、Display(); public class DeluxeComputerConfigurationFactory implements ComputerConfigurationFactorypublic Cpu createCpu() return newDeluxeCpu(); public Ram createRam() return newDeluxeRam(); public Mainboard createMainboard() return newDeluxeMainboard(); public Harddisk createHarddisk() return newDel
6、uxeHarddisk(); public Display createDisplay() return newDeluxeDisplay(); (3)电脑各种配置的接口:public String toString();public interface Rampublic String toString();public interface Mainboardpublic String toString();public interface Harddiskpublic String toString();public String toString();(4)电脑配置Cpu接口的各个子类:
7、public class StudentCpu implements Cpu public String toString() return Intel 奔腾双核 E5400( 盒 ) ; public class HomeCpuimplements Cpupublic String toString() return Intel 酷睿 i5 650 (盒);public class DeluxeCpu implements Cpupublic String toString() return Intel 酷睿i7 980X (至尊版);(5)电脑配置Ran接口的各个子类: public cl
8、ass StudentRam implements Rampublic String toString() return 宇瞻 2GB DDR3 1333(经典系列);public class HoneRaninplenents Ranpublic String toString() return 金士顿4GB DDR3 1333骇客神条套装);public class DeluxeRan inplenents Ranpublic String toString() return 海盗船 TW3X4G2000C9DF(6)电脑配置 Mainboard 接口的各个子类:public String
9、 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
10、Harddiskpublic String toString() return 希捷 250GB 8M; public class HomeHarddisk implements Harddisk public String toString() return 三星 500GB 7200专 16M(串/ 金宝); public class DeluxeHarddisk implements Harddiskpublic String toString() return 希捷 Cheetah 600GB; ( 8)电脑配置 Display 接口的各个子类:public class Student
11、Display implements Displaypublic String toString() return 飞利浦1 93E 1 SB; public String toString() return 三星 P2450H; public class DeluxeDisplay implements Display public String toString() return 戴尔 UltraSharp 2408WFP; (9)抽象产品计算机类:public abstract class ComputerString name;Cpu cpu;Ramram;Mainboard main
12、board;Harddisk harddisk ;Display display ;public abstract void prepare(); =name; public String getName() return name; public String getCpu() return (); public String getRam() return (); public String getMainboard() return (); public String getHarddisk() return (); public String getDisplay() return (
13、); (10)抽象产品计算机类的子类:public class PrepareComputer extends ComputerComputerConfigurationFactory ConfigurationFactorypublic PrepareComputer(ComputerConfigurationFactoryConfigurati onFactory)= ConfigurationFactory;public void prepare() cpu = ();ram = (); mainboard = (); harddisk = (); display = ();11)抽象计
14、算机店类:public abstract class ComputerStoreprotected abstract Computer createrComputer(String item);public Computer orderComputer(String type)Computer computer = createrComputer(type);();return computer;(12)抽象计算机店类的子类:public class DIYComputerStore extends ComputerStoreprotected Computer createrComputer
15、(String item)Computer computer = null ;ComputerConfigurationFactory studentConfigurationFactory =new StudentComputerConfigurationFactory();ComputerConfigurationFactory homeConfigurationFactorynewHomeComputerConfigurationFactory();ComputerConfigurationFactory deluxeConfigurationFactory =new DeluxeCom
16、puterConfigurationFactory();if (学生版 )computer = newPrepareComputer(studentConfiguratio nFactory);( 学生版 );else if ( 家庭装 )computer = newPrepareComputer(homeConfigurationFactory);( 家庭装 );else if ( 豪华版 )computer = newPrepareComputer(deluxeConfiguratio nFactory);( 豪华版 );return computer;(13)实现用户界面的主类: (由于
17、代码过长,只列出主要部分)public class DIYStore extends public DIYStore() super ( XXXXX);initComponents();private void initComponents() 种类 );( jRadioButton1 );( 学生版 );( jRadioButton2 ); ( 家庭装 );( jRadioButton3 ); ( 豪华版 );配置 );( CPU: );( 内存: );( 主板: );( 硬盘: );III!); (III!);( 显示器: );( );( 退出);( 清空);( 确定 );private
18、void jButton1ActionPerformed evt)private void jButton2ActionPerformed evt) ();III!);private void jButton3ActionPerformed evt) String configuration = getConfiguration();(configuration0);(configuration1);(configuration2);(configuration3);(configuration4);public String getConfiguration()ComputerStore D
19、IYstore = newDIYComputerStore();Computer computer = null ;String configuration = newString5;if ()computer = ( 学生版 );else if ()computer = ( 家庭装 );else if ()computer = ( 豪华版 );configuration0 = ();configuration1 = ();configuration2 = ();configuration3 = ();configuration4 = ();return configuration;public static void main(String args) Runnable() public void run() true );newDIYStore().setVisible();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1