设计模式实验抽象工厂模式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告课程:设计模式实验学期: 2010-2011学年第一学期任课教师:

专业:学号:姓名:成绩:

实验4 抽象工厂模式

1.题目:

使用抽象工厂模式实现一个DIY电脑店,其中的电脑配置有三个种类:学生版、家庭装、豪华版。

2.模式设计的UML类图:

3.程序源代码:

(1)计算机配置工厂接口ComputerConfigurationFactory.java:public interface ComputerConfigurationFactory {

public Cpu createCpu();

public Ram createRam();

public Mainboard createMainboard();

public Harddisk createHarddisk();

public Display createDisplay();

}

{

}

{

}

implements ComputerConfigurationFactory

{

public 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 String toString()

{ return"宇瞻2GB DDR3 1333(经典系列)"; }

}

public class HomeRam implements Ram

{

public String toString()

{ return"金士顿4GB DDR3 1333(骇客神条套装)"; } }

public class DeluxeRam implements Ram

{

public String toString()

{ return"海盗船TW3X4G2000C9DF"; }

}

(6)电脑配置Mainboard接口的各个子类:

public class StudentMainboard implements Mainboard {

public String toString()

{ return"铭瑄 MS-M3A890G"; }

}

public class HomeMainboard implements Mainboard {

public String toString()

{ return"技嘉GA-870A-UD3"; }

}

public class DeluxeMainboard implements Mainboard {

}

{

}

{

}

{

}

{

}

{

public String toString()

{ return"三星P2450H"; }

}

public class DeluxeDisplay implements Display

{

public 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(); }

}

{

;

}

{

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 ComputerStore

相关文档
最新文档