一起学Java设计模式--抽象工厂方法模式(创建型模式)

抽象工厂模式

电脑配件生产工厂生产内存、CPU等硬件设备,这些内存、CPU的品牌、型号并不一定相同,根据下面的“产品等级结构-产品族”示意图,使用抽象工厂模式实现电脑配件生产过程并绘制相应的类图,绘制类图并编程实现。

一起学Java设计模式--抽象工厂方法模式(创建型模式)_第1张图片

UML类图:

一起学Java设计模式--抽象工厂方法模式(创建型模式)_第2张图片

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

运行结果:

一起学Java设计模式--抽象工厂方法模式(创建型模式)_第3张图片


你可能感兴趣的:(Java设计模式)