设计模式01 创建型模式 - 抽象工厂

参考

1. 三种工厂模式的分析以及C++实现|博客园

2. 设计模式之三:抽象工厂模式 | CSDN

3. 浅谈Java设计模式——单实例、简单工厂、抽象工厂、观察者 | CSDN

抽象工厂

为创建一组相关或者相互依赖的对象提供一个接口,而无需指定他们具体的类。

通俗讲,就是创建工厂的工厂,每个工厂都实现抽象工厂,从而决定一个产品族;不同工厂生产不同产品族。

抽象工厂只关心接口,也就是工厂和产品之间的关系,工厂和用户之间的关系,而不关心产品如何实现,而Template和Builder Pattern关心产品实现方式,这是主要的区别。

适用场景:当有一组具体的、相关的产品组成一个产品族或者整套方案时,通过抽象工厂就能很好的实现这种逻辑关系,而且用户创建不容易出错。

特点:一个具体工厂生产的产品相关,组成一个产品族;

增加一种产品族而不增加具体产品时,新增一个具体工厂类即可;

缺点:增加一种具体的产品时,可能会导致所有的工厂包括抽象工厂接口都需要针对具体产品族而修改;

通用类图:

这里Factory1,2,3都能创建AbstractProductA,B,C具体子类,但是分别只能创建具体子类中的一个,这些具体子类组合到一起,就代表一个产品族;也就是每个具体工厂代表了一种整体方案;

原文地址:https://www.cnblogs.com/fortunely/p/9551642.html

时间: 2024-10-10 13:09:23

设计模式01 创建型模式 - 抽象工厂的相关文章

4、设计模式-创建型模式-抽象工厂模式

抽象工厂模式 产品等级结构和产品族 工厂方法模式中具体工厂负责生产具体的产品 每一个具体工厂对应一种具体的产品 工厂方法具有唯一性 一般情况下:一个具体工厂中只有一个或一组重载的工厂方法 有时候希望一个一个工厂可以提供多个产品对象 而不是单一的产品对象 产品等级结构: 产品等级结构即产品的继承结构,如一个抽象类是电视机 子类有海尔电视机.海信电视机等 抽象电视机与具体与具体品牌的电视机之间构成了一个产品等级结构 抽象电视机是父类,具体品牌的电视机是其子类 产品族: 在抽象工厂模式中 产品族是指由

创建型模式 抽象工厂

/** * 创建型模式 抽象工厂 * 抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的.抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象. * * 抽象工厂(Creator)角色 * 抽象工厂模式的核心,包含对多个产品结构的声明,任何工厂类都必须实现这个接口. * 具体工厂( Concrete Creator)角色 * 具体工厂类是抽象工厂的一个实现,负责实例化某个产品族中的产品对象. * 抽象(Product)角色 * 抽象

第5章 创建型模式—抽象工厂模式

1. 抽象工厂的定义 (1)提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 ①只需各要知道创建一系列对象的接口,而无需知道具体使用的是哪一个实现 ②这一系列对象是相关或相互依赖的,也就是说既要创建对象,还要约束它们之间的关系. ③一系列对象是构建新对象所需要的组成部分,并且对象之间相互有约赖.如电脑由CPU和主板等组成,但CPU的针脚数和主板提供的插口必须是匹配的,否则无法组装. (2)产品族和产品等级 ①产品族:在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等

java设计模式--创建型模式--抽象工厂

什么是抽象工厂,再次学习. 1 抽象工厂 2 概述 3 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 4 5 适用性 6 1.一个系统要独立于它的产品的创建.组合和表示时. 7 8 2.一个系统要由多个产品系列中的一个来配置时. 9 10 3.当你要强调一系列相关的产品对象的设计以便进行联合使用时. 11 12 4.当你提供一个产品类库,而只想显示它们的接口而不是实现时. 13 参与者 14 1.AbstractFactory 15 声明一个创建抽象产品对象的操作接口.

创建型模式--抽象工厂模式

概述 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类.  适用性 1.一个系统要独立于它的产品的创建.组合和表示时. 2.一个系统要由多个产品系列中的一个来配置时. 3.当你要强调一系列相关的产品对象的设计以便进行联合使用时. 4.当你提供一个产品类库,而只想显示它们的接口而不是实现时.  参与者 1.AbstractFactory 声明一个创建抽象产品对象的操作接口. 2.ConcreteFactory 实现创建具体产品对象的操作. 3.AbstractProduct 为一

(转自精通Python设计模式)Python设计模式之创建型模式——1.工厂模式

在工厂设计模式中,客户端可以请求一个对象,而无需知道这个对象来自哪里:也就是,使用哪个类类生成这个对象.工厂背后的思想是简化对象的创建.与客户端自己基于类实例化直接创建对象相比,基于一个中心化函数来实现,更易于追踪创建了哪些对象.通过将创建对象的代码和使用对象的代码解耦,工厂能够降低应用维护的复杂度. 工厂通常有两种形式:一种是工厂方法,它是一个方法(或是一个函数),对不同的输入参数返回不同的对象:第二种是抽象工厂,它是一组创建一系列相关事物对象的工厂方法. 1. 工厂方法 在工厂方法模式中,我

3 创建型模式-----抽象工厂模式

附加概念: 产品等级结构:不同品牌的同一类产品,如Haier电视机,TCL电视机都是电视机,因此属于同一个产品等级结构. 产品族:属于同一个品牌的所有产品,如Haier电视机,Haier冰箱等.   模式动机:工厂方法模式一般针对的是一个产品等级结构(如仅生产电视机),而抽象工厂模式针对的是多个产品等级结构(如不仅生产电视机,还生产空调). 模式定义:一个具体工厂可以创建一个产品族的所有产品,又称为Kit模式. 模式结构图: 模式实例: 一个电器工厂负责生产电视机和空调,其中包括Haier系列和

设计模式之创建型模式(上)

没有总结的学习不算学习,这一个月的学习可谓收获多多啊,接下来与大家分享一下. 一.设计模式的分类 总体来说设计模式分为三大类: 1.创建型模式,共五种. 2.结构型模式,共七种. 3.行为型模式,共十一种. 首先研究创建型模式 二. 概述 创建型模式,就是用来创建对象的模式,抽象了实例化的过程.它帮助一个系统独 立于如何创建.组合和表示它的那些对象. 三. 为什么需要创建型模式 所有的创建型模式都有两个永恒的主旋律: 第一,它们都将系统使用哪些具体类的信息封装起来: 第二,它们隐藏了这些类的实例

设计模式 (创建型模式)

  设计模式 创建型模式 1.创建型模式         创建型模式,包括了5种设计模式,分别是 Singleton (单例模式),Factory(工厂模式),AbstractFactory(抽象工厂模式),Builder(创建者),Prototype(原型) ,创建型模式主要作用就是抽象了实例化过程.他们帮助一个系统独立于如何创建.组合和表示他的那些对象.一个类创建型模式使用继承改变被实例化的类.而一个对象创建型模式将实例化委托给另一个对象. 2.Singleton (单例模式)      单