zoukankan      html  css  js  c++  java
  • 大话设计模式读书笔记--11.抽象工厂模式

    定义

    抽象工厂模式定义:

    提供一个创建一系列相关或相关依赖对象的接口,而无需指定他们具体的类

    抽象工厂模式通常是用于创建一族产品,并且这族产品分不同的等级;不同的具体工厂类生产不同等级的一族产品

    比如下图(来源于网络)

    两厢车和三厢车称为两个不同的等级结构;2.0排量两厢车和2.0排量三厢车成为同一个产品族。

    与工厂方法模式的区别

    工厂的产品全部属于同一个等级结构,则属于工厂方法模式;如果工厂的产品来自多个等级结构,则属于抽象工厂模式

    模式结构

    下图来源于网络

    AbstractFactory:是一个抽象工厂,包含所有产品创建的的抽象方法

    ProductA和我ProductB: 是抽象产品,之所以抽象,是因为有两种不同的实现

    代码实现

    场景:  sqlServer数据库中有两User表和Department表, 由于客户需求,需要把sqlServer数据库换成Access数据库

    场景分析: User相当于抽象产品ProductA, sqlServer数据库的User相当于ProductA1

    点击下载代码: 抽象模式实现

    点击下载代码: 简单工厂+反射+配置文件

    特点及使用场景

    优点:  在类内部对产品族的关联关系进行定义和描述,而不必专门引入一个新的类来进行管理

    缺点:  扩展困难,产品族中需要增加一个新的产品,则几乎所有的工厂类都需要进行修改

    使用场景:  就是一个继承体系中,如果存在着多个等级结构(即存在着多个抽象类),

                  并且分属各个等级结构中的实现类之间存在着一定的关联或者约束,就可以使用抽象工厂模式

  • 相关阅读:
    切片 Slice
    表单与v-model
    vue-内置指令
    go单元测试
    go异常处理
    设计模式
    django数据库事务
    go interface衍生的插件化处理
    goroutine
    drf之序列化
  • 原文地址:https://www.cnblogs.com/liuconglin/p/6436027.html
Copyright © 2011-2022 走看看