设计模式【抽象工厂模式】
来源:互联网 发布:iphone数据流量开关 编辑:程序博客网 时间:2024/06/13 02:57
在学习抽象工厂模式之间,我们先了解两个重要概念:产品族与产品等级。产品族,是指不同产品等级结构中,功能相关联的产品组成的家族。本文以电脑的组装为例,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{@Overridepublic void run() {System.out.println("AMD is running!");}}
IntelCPU
public class IntelCPU implements CPU{@Overridepublic void run() {System.out.println("Intel is running!");}}
AbstractFactory的两个继承子类:AMDFactory、IntelFactory。
AMDFactory
public class AMDFactory extends AbstractFactory{@Overridepublic CPU produceCPU() {return new AMDCPU();}}
IntelFactory
public class IntelFactory extends AbstractFactory{@Overridepublic 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】
0 0
- 抽象工厂设计模式
- 设计模式-----抽象工厂
- 抽象工厂设计模式
- 抽象工厂设计模式
- 抽象工厂设计模式
- 设计模式 抽象工厂
- 设计模式--抽象工厂
- 设计模式--抽象工厂
- 设计模式 抽象工厂
- 设计模式-抽象工厂
- 设计模式-> 抽象工厂
- 抽象工厂设计模式
- 设计模式--抽象工厂
- 【设计模式】抽象工厂
- 设计模式---抽象工厂
- 【设计模式-抽象工厂】
- 设计模式-抽象工厂
- 设计模式--抽象工厂
- c++ 多线程 事件EVENT
- 公共注意项
- lua随笔记录
- 《数据结构》实验一:VC编程环境灵活应用
- hdu1584 深搜水题
- 设计模式【抽象工厂模式】
- 软件包 java.text 的描述
- android 内存优化
- 无法访问 您可能没有权限使用网络资源
- android单元测试
- Android:自定义ImageView实现缩放,回弹效果
- linux的内存物理地址与映射地址
- 如何使用程序添加评论
- 面试题:求一个自然数的开方,要求不能用开方函数,开方的数必须是整数才输出,否则给出提示