设计模式实验抽象工厂模式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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