ABSTRACT FACTORY(抽象工厂) --对象创建型模式
一、意图
1、提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
2、抽象工厂是一个能从几组类中返回其中某一组的工厂对象。
二、别名
kit
三、结构(示例解决方案)

四、适用性
在一下情况可以使用Abstract Factory模式
1、一个系统要独立于它的产品的创建、组合和表示时
2、一个系统要由多个产品系列中的一个来配置时
3、当你要强调一系列相关的产品对象的设计以便进行联合使用时
4、当你提供一个产品类库,而只想显示它们的接口而不是实现时
五、参与者
1、Abstract Factory--申明一个创建一系列抽象产品对象的操作接口。
2、Concrete Factory--实现创建具体产品对象的操作
3、Abstract Product--为一类产品对象申明一个接口
4、Concrete Product-定义一个将被相应的具体工厂创建的产品对象,实现Abstract Product接口
5、Client--仅使用由Abstract Factory和Abstract Product类申明的接口
六、协作
1、通常在运行时刻创建一个Concrete Factory类的实例。这一具体的工厂创建具有特定实现的产品对象。
2、为创建不同的产品对象,客户应使用不同的具体工厂
3、Abstract Factory将产品对象的创建延迟到它的Concrete Factory子类。
七、效果
Abstract Factory模式有下面的一些优点和缺点:
1、它分离了具体的类
2、它使得易于交换产品系列
3、它有利于产品的一致性
4、难以支持新种类的产品

- 大小: 47.4 KB
分享到:
相关推荐
Java设计模式是面向对象编程...在阅读《Chapter1___Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)》的相关资料时,你可以更深入地学习这些模式的细节,包括适用场景、优缺点以及如何在实际项目中实现。
### 设计模式——Abstract Factory模式的认识 在软件工程领域,设计模式是一种被广泛接受的解决方案,用于解决在软件设计过程中常见的问题。其中,Abstract Factory模式是23种GoF(Gang of Four)设计模式之一,它...
1. 抽象工厂(Abstract Factory):这是模式的核心,它是一个接口或抽象类,定义了一系列创建对象的方法,但并不直接实例化具体的对象。这些方法用于创建一系列相关或相互依赖的对象。 2. 具体工厂(Concrete ...
在设计模式中,Abstract Factory模式是一种用来解决在不指定具体实现的情况下创建一系列相关或相互依赖对象的模式。在本文的上下文中,我们看到它被应用于一个奇幻RPG游戏的角色种族设计,每个种族(如人类、精灵)...
在这个例子中,`AbstractProductA`和`AbstractProductB`是抽象产品,`ConcreteProductA1/A2`和`ConcreteProductB1/B2`是具体产品,`AbstractFactory`是抽象工厂,`ConcreteFactory1/2`是具体工厂。客户端代码通过...
在“AbstractFactory案例代码”中,我们可能看到一个实现跨平台数据访问的例子,这里提到了支持SQLServer和Oracle两种数据库。这表明抽象工厂将用于创建与不同数据库交互的适配器或连接对象。在分层架构设计中,通常...
1. 抽象工厂(Abstract Factory):这是模式的核心,定义了一组创建对象的接口,客户端通过这个接口请求创建所需的产品。这个接口不直接创建产品,而是将产品创建的职责委托给具体工厂。 2. 具体工厂(Concrete ...
总的来说,AbstractFactory模式在C++中的实现充分利用了面向对象的特性,如抽象类、继承和多态,使得系统具有更好的灵活性和扩展性。通过这种方式,我们可以轻松地替换或增加新的产品族,而不会对原有代码造成太大的...
- 抽象工厂接口的头文件(如`AbstractFactory.h`),定义了创建产品的接口。 - 具体工厂类的头文件和源文件(如`ConcreteFactory1.h`、`ConcreteFactory1.cpp`和`ConcreteFactory2.h`、`ConcreteFactory2.cpp`),...
`AbstractFactory`是抽象工厂,定义了创建`AbstractProductA`和`AbstractProductB`的接口;`ConcreteFactory1`和`ConcreteFactory2`是具体工厂,分别创建`ProductA1`和`ProductB1`,以及`ProductA2`和`ProductB2`。`...
这个压缩包“C# 抽象工厂 AbstractFactory.rar”可能包含了一个关于如何在C#中实现抽象工厂模式的实例或教程。 抽象工厂模式是一种创建型设计模式,它提供了一种创建对象族的方式,而无需指定具体类。在C#中,这种...
抽象工厂(Abstract Factory)模式是一种创建型设计模式,它提供了一种创建对象的接口,但允许子类决定实例化哪一个类。这种模式是基于对象的抽象,而不是具体的类,因此,它允许创建一系列相关的对象,而无需指定...
1. 抽象工厂(Abstract Factory):定义一个创建对象的接口,但不指定具体的产品实现。这个接口通常是定义了一组相关产品的生产方法。 2. 具体工厂(Concrete Factory):实现了抽象工厂接口,负责创建具体的产品...
抽象工厂模式的核心组成部分包括抽象工厂(AbstractFactory)、具体工厂(ConcreteFactory)、抽象产品(AbstractProduct)以及具体产品(ConcreteProduct)。以下是对这些角色的详细解释: 1. 抽象工厂(Abstract...
抽象工厂(Abstract Factory)模式是设计模式中的一种创建型模式,它提供了一种...在阅读提供的博客文章《AbstractFactory 抽象工厂》和研究压缩包中的相关文件时,你可以深入学习到更多关于这个模式的实践和应用场景。
Abstract Factory模式 1 定义创建对象的接口,并封装对象的创建 2 将具体化类的工作延迟到了类中 3 创建创建一组相关对象或者说是一组相互依赖的对象 一般情况下,我们为了提高内聚和松耦合,经常会使用多态来...
public class WindowsFactory implements AbstractFactory { @Override public Button createButton() { return new WindowsButton(); } @Override public Window createWindow() { return new ...
1. **模式结构**:抽象工厂模式通常包括抽象工厂接口(AbstractFactory),具体工厂类(ConcreteFactory),抽象产品接口(Product)以及具体产品类(ConcreteProduct)。抽象工厂定义了创建产品的方法,而具体工厂...
抽象工厂通常包含一个抽象工厂接口(例如:`AbstractFactory`)和多个具体工厂类(如:`ConcreteFactory1`和`ConcreteFactory2`)。抽象工厂接口定义了创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类...
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种在不指定具体类的情况下创建一系列相关或相互依赖对象的接口。这个模式使得客户端代码与具体产品的实现解耦,从而提高了系统的灵活性和...