设计模式【抽象工厂模式】
2014-09-25 23:21
363 查看
在学习抽象工厂模式之间,我们先了解两个重要概念:产品族与产品等级。产品族,是指不同产品等级结构中,功能相关联的产品组成的家族。本文以电脑的组装为例,AMD主板、CPU组成一个家族,Intel主板、CPU组成一个家族。而这两个家族都来自两个产品级别:主板、CPU。主板与CPU对应的就是产品等级。
抽象工厂模式是对象的创建模式,它是工厂方法模式的进一步推广。关于工厂方法模式,可以参看:http://blog.csdn.net/mahoking/article/details/39505569。抽象工厂模式:定义了一个创建对象的接口,让子类决定实例化哪一个类。抽象工厂模式的优点是符合“开放-闭合”原则,即对修改是封闭的,对扩展是开放的。
【转载使用,请注明出处:http://blog.csdn.net/mahoking】
以下是示例代码:
本例需要的两个父类,分别为AbstractFactory、CPU。
AbstractFactory
CPU
CPU的两个实现子类:AMDCPU、IntelCPU。
AMDCPU
IntelCPU
AbstractFactory的两个继承子类:AMDFactory、IntelFactory。
AMDFactory
IntelFactory
测试抽象工厂模式的测试类
【转载使用,请注明出处:http://blog.csdn.net/mahoking】
抽象工厂模式是对象的创建模式,它是工厂方法模式的进一步推广。关于工厂方法模式,可以参看: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】
相关文章推荐
- 设计模式C#描述——抽象工厂模式
- .NET设计模式-抽象工厂模式(Abstract Factory)
- 设计模式C#描述——抽象工厂模式
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
- 设计模式——创建型模式之 Abstract Factory抽象工厂模式
- [导入]C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式)
- 设计模式C#描述——抽象工厂模式
- Java设计模式圣经连载(03)-抽象工厂模式
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
- 我的设计模式之旅(3)――抽象工厂模式AbstractFactory
- 设计模式实践(抽象工厂模式应用)—通信录的优化过程
- 设计模式之抽象工厂模式
- AspectJ实现设计模式(四)——抽象工厂模式
- .NET设计模式:抽象工厂模式(Abstract Factory)
- [导入]C#面向对象设计模式纵横谈(4):Abstract Factory 抽象工厂模式(创建型模式)
- 设计模式笔记-抽象工厂模式
- .Net设计模式之抽象工厂模式(Abstract Factory)
- .NET设计模式(3):抽象工厂模式(Abstract Factory)(转)
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
- 设计模式(3)-抽象工厂模式(Abstract Factory)