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

原创 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(抽象工厂) -- 对象创建型模式

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

ABSTRACT FACTORY抽象工厂 - 对象创建型模式(四)

1,.意图 提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。 2.别名 Kit 3.动机 考虑一个支持多种视感标准的用户界面工具包,列入Motif和Presentatio...

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

1.意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 2.适用: (1)一个系统要独立于它的产品的创建,组合和表示时。 (2)一个系统要由多个产品系列中的一个来配置时。...

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

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

创建型模式——抽象工厂

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

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

12356
  • cbbbc
  • cbbbc
  • 2014年08月30日 23:42
  • 994

软件设计模式——抽象工厂

  • 2015年05月17日 07:25
  • 2.62MB
  • 下载

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

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

跟着实例学习设计模式(4)-抽象工厂(创建型)

抽象工厂属于创建型设计模式 设计意图:提供一个接口,可以创建一系列相关或相互依赖的对象,而无须指定它们具体的类。 光看设计意图有些抽象,不好理解,让我们来看一下实例类图,结合类图我们再做具体的解释,相...
  • andy_gx
  • andy_gx
  • 2015年07月12日 11:37
  • 514
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:抽象工厂——对象创建型模式
举报原因:
原因补充:

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