抽象工厂模式
电脑配件生产工厂生产内存、CPU等硬件设备,这些内存、CPU的品牌、型号并不一定相同,根据下面的“产品等级结构-产品族”示意图,使用抽象工厂模式实现电脑配件生产过程并绘制相应的类图,绘制类图并编程实现。
UML类图:
interface CPU
{
void discribe();
}
interface RAM
{
void discribe();
}
class PcCPU implements CPU
{
public void discribe()
{
System.out.println("This is produce the PC_CPU ^_^");
}
}
class MacCPU implements CPU
{
public void discribe()
{
System.out.println("This is produce the Mac_CPU ^-^");
}
}
class PcRAM implements RAM
{
public void discribe()
{
System.out.println("PcRAM");
}
}
class MacRAM implements RAM
{
public void discribe()
{
System.out.println("MacRAM");
}
}
interface ComputerPartsFactory
{
CPU produceCPU();
ARM produceARM();
}
public class PcFactory implements ComputerPartsFactory
{
public PcCPU produceCPU() {
System.out.println("PC_CPU produced! >_<");
return new PcCPU();
public PcRAM produceRAM() {
System.out.println("PC_ARM produced! >_<");
return new PcARM();
}
}
public class MacFactory implements ComputerPartsFactory{
public MacCPU produceCPU() {
System.out.println("MacCPU produced! ~_~");
return new MacCPU();
}
public MacRAM produceRAM() {
System.out.println("MacARM produced! ~_~");
return new MacARM();
}
}
class ComputerPartsClient
{
public static void main(String a[])
{
CPU cpu;
ARM arm;
ComputerPartsFactory pcFactory;
ComputerPartsFactory macFactory;
System.out.println("THIS IS THE PC_PARTS 0_0");
pcFactory = new PcFactory();
cpu = pcFactory.produceCPU();
arm = pcFactory.produceARM();
cpu.discribe();
arm.discribe();
System.out.println("***************************");
System.out.println("THIS IS THE MAC_PARTS 0_0");
macFactory = new MacFactory();
cpu = macFactory.produceCPU();
arm = macFactory.produceARM();
cpu.discribe();
arm.discribe();
}
}
运行结果: