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

抽象工厂模式

电脑配件生产工厂生产内存、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();
	}
}

运行结果:



  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值