抽象工厂模式的运用.docx

上传人:b****6 文档编号:8094778 上传时间:2023-01-28 格式:DOCX 页数:9 大小:33.56KB
下载 相关 举报
抽象工厂模式的运用.docx_第1页
第1页 / 共9页
抽象工厂模式的运用.docx_第2页
第2页 / 共9页
抽象工厂模式的运用.docx_第3页
第3页 / 共9页
抽象工厂模式的运用.docx_第4页
第4页 / 共9页
抽象工厂模式的运用.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

抽象工厂模式的运用.docx

《抽象工厂模式的运用.docx》由会员分享,可在线阅读,更多相关《抽象工厂模式的运用.docx(9页珍藏版)》请在冰豆网上搜索。

抽象工厂模式的运用.docx

抽象工厂模式的运用

实验三抽象工厂模式的运用

一、实验目的:

抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

在熟悉抽象工厂模式相关理论知识的基础上,使用抽象工厂模式实现“电脑配置商店”程序。

二、实验要求:

使用抽象工厂模式实现“电脑配置商店”,要求如下:

1.电脑由CPU、主板、显卡、存、硬盘等配件组合而成。

现电脑配置有两种配置方案。

2.根据配置方案可以显示具体配置信息。

3.根据配置方案可以显示价格。

1、设计并绘制该程序的类图;

2、依照设计的类图使用Java语言编写代码,并实现该程序;

3、除了核心的模式相关类实现外,提供测试环境,按照难度高低,分别是:

a)控制台程序,Client硬编码初始化模式和测试环境,运行结果文本输出;

b)控制台程序,Client初始化测试环境,并根据用户输入运算,运行结果文本输出;

c)设计并实现用户UI,Client初始化测试环境,并根据用户在UI控件上的输入运算,运行结果文本输出;

三、实验容:

类图

代码

publicabstractclassComputer_store{

Computer_factorycomputer;

publicabstractComputer_factorycreateComputer(Stringtype);

}

Computer_factory.java

publicinterfaceComputer_factory{

publicCpucreateCpu();

publicMainboardcreateMainboard();

publicGraphicsCardcreateGraphicsCard();

publicRamcreateRam();

publicHarddiskcreateHarddisk();

publicvoiddisplayPrice();

}

电脑制造

publicclassPlan_A_factoryimplementsComputer_factory{

publicPlan_A_factory(){

System.out.println("\n配置方案一:

");

}

publicCpucreateCpu(){

//TODO自动生成的方法存根

returnnewPlan_A_Cpu();

}

publicMainboardcreateMainboard(){

//TODO自动生成的方法存根

returnnewPlan_A_Mainboard();

}

publicGraphicsCardcreateGraphicsCard(){

//TODO自动生成的方法存根

returnnewPlan_A_GraphicsCard();

}

publicRamcreateRam(){

//TODO自动生成的方法存根

returnnewPlan_A_Ram();

}

publicHarddiskcreateHarddisk(){

//TODO自动生成的方法存根

returnnewPlan_A_Harddisk();

}

publicvoiddisplayPrice(){

//TODO自动生成的方法存根

System.out.println("RMB:

4000:

");

}

}

publicclassPlan_B_factoryimplementsComputer_factory{

publicPlan_B_factory(){

System.out.println("\n配置方案二:

");

}

publicCpucreateCpu(){

//TODO自动生成的方法存根

returnnewPlan_B_Cpu();

}

publicMainboardcreateMainboard(){

//TODO自动生成的方法存根

returnnewPlan_B_Mainboard();

}

publicGraphicsCardcreateGraphicsCard(){

//TODO自动生成的方法存根

returnnewPlan_B_GraphicsCard();

}

publicRamcreateRam(){

//TODO自动生成的方法存根

returnnewPlan_B_Ram();

}

publicHarddiskcreateHarddisk(){

//TODO自动生成的方法存根

returnnewPlan_B_Harddisk();

}

publicvoiddisplayPrice(){

//TODO自动生成的方法存根

System.out.println("RMB:

5000");

}

}

配置接口

Cpu.java

publicinterfaceCpu{

StringCpu=newString();

}

GraphicsCard.Java

publicinterfaceGraphicsCard{

StringGraphicsCard=newString();

}

Mainboard.java

publicinterfaceMainboard{

StringMainboard=newString();

}

Ram.java

publicinterfaceRam{

StringRam=newString();

}

接口实现

publicclassPlan_A_CpuimplementsCpu{

StringCpu=newString();

publicPlan_A_Cpu(){

Cpu="AMDFX-8350";

System.out.println("Cpu:

"+Cpu);

}

}

publicclassPlan_A_GraphicsCardimplementsGraphicsCard{

StringGraphicsCard=newString();

publicPlan_A_GraphicsCard(){

GraphicsCard="微星GTX970";

System.out.println("GraphicsCard:

"+GraphicsCard);

}

}

publicclassPlan_A_HarddiskimplementsHarddisk{

StringHarddisk=newString();

publicPlan_A_Harddisk(){

Harddisk="IDE";

System.out.println("Harddisk:

"+Harddisk);

}

}

publicclassPlan_A_MainboardimplementsMainboard{

StringMainboard=newString();

publicPlan_A_Mainboard(){

Mainboard="ASUS";

System.out.println("Mainboard:

"+Mainboard);

}

}

publicclassPlan_A_RamimplementsRam{

StringRam=newString();

publicPlan_A_Ram(){

Ram="2g";

System.out.println("Ram:

"+Ram);

}

}

publicclassPlan_B_CpuimplementsCpu{

StringCpu=newString();

publicPlan_B_Cpu(){

Cpu="inteli5";

System.out.println("Cpu:

"+Cpu);

}

}

publicclassPlan_B_GraphicsCardimplementsGraphicsCard{

StringGraphicsCard=newString();

publicPlan_B_GraphicsCard(){

GraphicsCard="影驰GT730";

System.out.println("GraphicsCard:

"+GraphicsCard);

}

}

publicclassPlan_B_HarddiskimplementsHarddisk{

StringHarddisk=newString();

publicPlan_B_Harddisk(){

Harddisk="SATE";

System.out.println("Harddisk:

"+Harddisk);

}

}

publicclassPlan_B_MainboardimplementsMainboard{

StringMainboard=newString();

publicPlan_B_Mainboard(){

Mainboard="GIGABYTE";

System.out.println("Mainboard:

"+Mainboard);

}

}

publicclassPlan_B_RamimplementsRam{

StringRam=newString();

publicPlan_B_Ram(){

Ram="4g";

System.out.println("Ram:

"+Ram);

}

}

电脑基类

publicclassComputerextendsComputer_store{

publicComputer_factorycreateComputer(Stringtype){

Computer_factorycomputer=null;

if(type.equals("配置方案一")){

computer=newPlan_A_factory();

}

elseif(type.equals("配置方案二")){

computer=newPlan_B_factory();

}

computer.createCpu();

computer.createGraphicsCard();

computer.createHarddisk();

computer.createMainboard();

computer.createRam();

computer.displayPrice();

returncomputer;

}

}测试

importjava.util.Scanner;

publicclassTEST{

publicstaticvoidmain(String[]args){

//TODO自动生成的方法存根

Computerc=newComputer();

Scannersc=newScanner(System.in);

for(intp=0;p<1;){

System.out.println("输入选项选择不同的电脑配置方案1,配置方案一2,配置方案二");

Stringk=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;

}

}

}

}

四、实验总结:

通过本次实验认识了抽象工厂模式用于创建相关或依赖对象的家族,而不需要明确指定具体类。

在熟悉抽象工厂模式相关理论知识的基础上,使用抽象工厂模式实现了“电脑配置商店”程序。

 

指导教师签名:

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

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1