《抽象工厂模式的运用(共11页).doc》由会员分享,可在线阅读,更多相关《抽象工厂模式的运用(共11页).doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 实验三 抽象工厂模式的运用一、实验目的:抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。在熟悉抽象工厂模式相关理论知识的基础上,使用抽象工厂模式实现“电脑配置商店”程序。二、实验要求:使用抽象工厂模式实现“电脑配置商店”,要求如下:1. 电脑由CPU、主板、显卡、内存、硬盘等配件组合而成。现电脑配置有两种配置方案。2. 根据配置方案可以显示具体配置信息。3. 根据配置方案可以显示价格。1、 设计并绘制该程序的类图;2、 依照设计的类图使用Java语言编写代码,并实现该程序;3、 除了核心的模式相关类实现外,提供测试环境,按照难度高低,
2、分别是:a) 控制台程序,Client硬编码初始化模式和测试环境,运行结果文本输出;b) 控制台程序,Client初始化测试环境,并根据用户输入运算,运行结果文本输出;c) 设计并实现用户UI,Client初始化测试环境,并根据用户在UI控件上的输入运算,运行结果文本输出;三、实验内容:类图代码public abstract class Computer_store Computer_factory computer;public abstract Computer_factory createComputer(String type) ;Computer_factory.javapublic
3、 interface Computer_factory public Cpu createCpu(); public Mainboard createMainboard(); public GraphicsCard createGraphicsCard();public Ram createRam(); public Harddisk createHarddisk(); public void displayPrice();电脑制造public class Plan_A_factory implements Computer_factorypublic Plan_A_factory()Syst
4、em.out.println(n配置方案一:);public Cpu createCpu() / TODO 自动生成的方法存根return new Plan_A_Cpu();public Mainboard createMainboard() / TODO 自动生成的方法存根return new Plan_A_Mainboard();public GraphicsCard createGraphicsCard() / TODO 自动生成的方法存根return new Plan_A_GraphicsCard();public Ram createRam() / TODO 自动生成的方法存根ret
5、urn new Plan_A_Ram();public Harddisk createHarddisk() / TODO 自动生成的方法存根return new Plan_A_Harddisk();public void displayPrice() / TODO 自动生成的方法存根System.out.println(RMB:4000:); public class Plan_B_factory implements Computer_factorypublic Plan_B_factory()System.out.println(n配置方案二:);public Cpu createCpu(
6、) / TODO 自动生成的方法存根return new Plan_B_Cpu();public Mainboard createMainboard() / TODO 自动生成的方法存根return new Plan_B_Mainboard();public GraphicsCard createGraphicsCard() / TODO 自动生成的方法存根return new Plan_B_GraphicsCard();public Ram createRam() / TODO 自动生成的方法存根return new Plan_B_Ram();public Harddisk createHa
7、rddisk() / TODO 自动生成的方法存根return new Plan_B_Harddisk();public void displayPrice() / TODO 自动生成的方法存根System.out.println(RMB:5000);配置接口Cpu.javapublic interface Cpu String Cpu=new String();GraphicsCard.Javapublic interface GraphicsCard String GraphicsCard=new String(); Mainboard.javapublic interface Mainb
8、oard String Mainboard=new String();Ram.javapublic interface Ram String Ram =new String();接口实现public class Plan_A_Cpu implements CpuString Cpu=new String();public Plan_A_Cpu()Cpu=AMD FX-8350;System.out.println(Cpu:+Cpu); public class Plan_A_GraphicsCard implements GraphicsCardString GraphicsCard=new
9、String();public Plan_A_GraphicsCard()GraphicsCard=微星GTX 970;System.out.println(GraphicsCard:+GraphicsCard); public class Plan_A_Harddisk implements HarddiskString Harddisk=new String();public Plan_A_Harddisk()Harddisk=IDE;System.out.println(Harddisk:+Harddisk); public class Plan_A_Mainboard implemen
10、ts MainboardString Mainboard=new String();public Plan_A_Mainboard()Mainboard=ASUS;System.out.println(Mainboard:+Mainboard); public class Plan_A_Ram implements RamString Ram=new String();public Plan_A_Ram()Ram=2g;System.out.println(Ram:+Ram); public class Plan_B_Cpu implements Cpu String Cpu=new Stri
11、ng();public Plan_B_Cpu()Cpu=intel i5;System.out.println(Cpu:+Cpu); public class Plan_B_GraphicsCard implements GraphicsCardString GraphicsCard=new String();public Plan_B_GraphicsCard()GraphicsCard=影驰GT730;System.out.println(GraphicsCard:+GraphicsCard); public class Plan_B_Harddisk implements Harddis
12、kString Harddisk=new String();public Plan_B_Harddisk()Harddisk=SATE;System.out.println(Harddisk:+Harddisk); public class Plan_B_Mainboard implements MainboardString Mainboard=new String();public Plan_B_Mainboard()Mainboard=GIGABYTE;System.out.println(Mainboard:+Mainboard); public class Plan_B_Ram im
13、plements RamString Ram=new String();public Plan_B_Ram()Ram=4g;System.out.println(Ram:+Ram);电脑基类public class Computer extends Computer_store public Computer_factory createComputer(String type)Computer_factory computer=null;if(type.equals(配置方案一)computer=new Plan_A_factory();else if(type.equals(配置方案二)c
14、omputer=new Plan_B_factory();computer.createCpu();computer.createGraphicsCard();computer.createHarddisk();computer.createMainboard();computer.createRam();computer.displayPrice();return computer;测试import java.util.Scanner;public class TEST public static void main(String args) / TODO 自动生成的方法存根Computer
15、 c=new Computer ();Scanner sc = new Scanner(System.in);for(int p=0;p1;)System.out.println(输入选项选择不同的电脑配置方案 1,配置方案一 2,配置方案二); String k = sc.nextLine(); switch(k) case 1: c.createComputer(配置方案一); break; case 2: c.createComputer(配置方案二); break; case Q: p=2; sc.close(); break; default: System.out.println(更新方案中,请选择方案一或方案二); break; 四、实验总结:通过本次实验认识了抽象工厂模式用于创建相关或依赖对象的家族,而不需要明确指定具体类。在熟悉抽象工厂模式相关理论知识的基础上,使用抽象工厂模式实现了“电脑配置商店”程序。指导教师签名: 专心-专注-专业
限制150内