抽象工厂——对象创建型模式

原创 2016年08月29日 16:19:53

一、意图
提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。
二、适用性
在以下情况可以使用Abstract Factory模式

  • 一个系统要独立于它的产品的创建,组合和表示时。
  • 一个系统要由多个产品系列中的一个来配置时。
  • 当你要强调一系列相关的产品对象的设计以便进行联合使用时。
  • 当你提供一个产品类库,而只想显示它们的接口而不是实现时。

三、结构
这里写图片描述

四、代码示例
抽象工厂

public abstract class AbstractFactory {
    public abstract AbstractProductA createProductA();

    public abstract AbstractProductB createProductB();
}

具体工厂

public class ConcreteFactory1 extends AbstractFactory{
    @Override
    public AbstractProductA createProductA() {
        return new ProductA1();
    }

    @Override
    public AbstractProductB createProductB() {
        return new ProductB1();
    }
}
public class ConcreteFactory2 extends AbstractFactory{
    @Override
    public AbstractProductA createProductA() {
        return new ProductA2();
    }

    @Override
    public AbstractProductB createProductB() {
        return new ProductB2();
    }
}

抽象产品

public class AbstractProductA {
}
public class AbstractProductB {
}

具体产品

public class ProductA1 extends AbstractProductA {
}
public class ProductA2 extends AbstractProductA {
}

使用

public class Client {
    public static void main(String[] args){
        //获得 "1" 工厂
        AbstractFactory factory = new ConcreteFactory1();
        System.out.println("使用 ConcreteFactory1");
        System.out.println("ProductA: "+factory.createProductA().getClass().getName());
        System.out.println("ProductB: "+factory.createProductB().getClass().getName());
        factory = new ConcreteFactory2();
        System.out.println("使用 ConcreteFactory2");
        System.out.println("ProductA: "+factory.createProductA().getClass().getName());
        System.out.println("ProductB: "+factory.createProductB().getClass().getName());
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

1.1 Abstract Factory(抽象工厂) -- 对象创建型模式

模式定义:         抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。         抽象工厂允许客户使用抽象的接口来创建一组相关产品,而不需要知道实际产出...

抽象工厂——创建型设计模式一

一、了解抽象工厂设计模式 书上说:提供一个创建一系列相关或相互依赖对象的接口,而无需制定他们具体的类。   二、看类图 解说员:图上分两部分来看,一部分是左边的IFactory家族,另一部...

创建型模式——抽象工厂

定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。 类型:创建类模式 类图: 抽象工厂模式与工厂方法模式的区别         抽象工厂模式是...

Cocos2d-x3.2与设计模式(一)创建型模式之ABSTRACT FACTORY(抽象工厂)--对象创建型模式

12356
  • cbbbc
  • cbbbc
  • 2014-08-30 23:42
  • 951

Scala设计模式Part I. 创建模式——1.抽象工厂

Part I. 创建模式1. 抽象工厂描述 抽象工厂的目的是为创建一系列相关或者依赖的对象提供一个接口,而不用指定具体的类 例如我们要开发一个可以兼容不同OS平台GUI库,为了能够为图形窗口提供统...

3、设计模式__创建型__抽象工厂

工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。此时,我们可以考虑将一...

创建型模式-AbstractFactory ( 抽象工厂 )

摘自《Java设计模式(疯狂JAVA联盟版)》 抽象工厂  概述 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。  ...

创建型模式之抽象工厂ABSTRACT FACTORY

意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。一、工厂模式与抽象工厂模式区别工厂模式抽象工厂模式与工厂模式类似。不过处理的问题更为复杂。工厂模式中我们处理的是不同图形的面积...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)