设计模式【抽象工厂模式】

       在学习抽象工厂模式之间,我们先了解两个重要概念:产品族与产品等级。产品族,是指不同产品等级结构中,功能相关联的产品组成的家族。本文以电脑的组装为例,AMD主板、CPU组成一个家族,Intel主板、CPU组成一个家族。而这两个家族都来自两个产品级别:主板、CPU。主板与CPU对应的就是产品等级。
抽象工厂模式是对象的创建模式,它是工厂方法模式的进一步推广。关于工厂方法模式,可以参看:
http://blog.csdn.net/mahoking/article/details/39505569。抽象工厂模式:定义了一个创建对象的接口,让子类决定实例化哪一个类。抽象工厂模式的优点是符合“开放-闭合”原则,即对修改是封闭的,对扩展是开放的。
【转载使用,请注明出处:http://blog.csdn.net/mahoking
以下是示例代码:
本例需要的两个父类,分别为AbstractFactory、CPU。
AbstractFactory

public abstract class AbstractFactory {

	/**
	 * 生产CPU
	 */
	public abstract CPU produceCPU();
}

CPU

public interface CPU {

	public void run();
}

CPU的两个实现子类:AMDCPU、IntelCPU。
AMDCPU

public class AMDCPU implements CPU{

	@Override
	public void run() {
		System.out.println("AMD is running!");
	}
}

IntelCPU

public class IntelCPU implements CPU{

	@Override
	public void run() {

		System.out.println("Intel is running!");
	}

}


AbstractFactory的两个继承子类:AMDFactory、IntelFactory。
AMDFactory

public class AMDFactory extends AbstractFactory{

	@Override
	public CPU produceCPU() {
		
		return new AMDCPU();
	}

}

IntelFactory

public class IntelFactory extends AbstractFactory{

	@Override
	public CPU produceCPU() {
		return new IntelCPU();
	}

}


测试抽象工厂模式的测试类

/**
 * 抽象工厂模式测试用例
 * @author Mahc
 *
 */
public class TestAbstractFactory {

	public static void main(String[] args) {
		
		//创建AMD工厂
		AMDFactory amdFactory = new AMDFactory();
		CPU amdCpu = amdFactory.produceCPU();
		amdCpu.run();
		
		//常见Intel工厂
		IntelFactory intelFactory = new IntelFactory();
		CPU intelCpu = intelFactory.produceCPU();
		intelCpu.run();
	}
}


【转载使用,请注明出处:http://blog.csdn.net/mahoking


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hoking

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值