zoukankan      html  css  js  c++  java
  • 抽象工厂模式

    1.抽象工厂模式概述:

      抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型情况下,能够创建多个产品族的产品对象。

    2.抽象工厂模式包含的角色及其职责:

      抽象工厂:抽象工厂模式的核心,包含对多个产品结构的声明,任何工厂类都必须实现这个接口。

         具体工厂:具体工厂类是抽象工厂的一个实现,负责实例化某个产品族中的产品对象。

         抽象产品: 抽象模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。

         具体产品:抽象模式所创建的具体实例对象

    总结
        抽象工厂中方法对应产品结构(苹果,橙子),具体工厂对应产品族(纽约风味,德国风味)。

    抽象工厂模式缺点
        在添加新的产品对象时,难以扩展抽象工厂来生产新种类的产品,
        这是因为在抽象工厂角色中规定了所有可能被创建的产品集合,要支持新种类的产品就意味着要对该接口进行扩展,而这将涉及到对抽象工厂角色及其所有子类的修改,显然会带来较大的不便。
        开闭原则的倾斜性。
        (1) 增加产品族:对于增加新的产品族,抽象工厂模式很好地支持了“开闭原则”,只需要增加具体产品并对应增加一个新的具体工厂,对已有代码无须做任何修改。
        (2) 增加新的产品等级结构:对于增加新的产品等级结构,需要修改所有的工厂角色,包括抽象工厂类,在所有的工厂类中都需要增加生产新产品的方法,违背了“开闭原则”。

  • 相关阅读:
    python-操作excel之openpyxl
    python之redis
    geetest滑动验证
    vue-cookies
    谷歌浏览器安装vue插件
    axios和vuex
    概率论基础:补充(1)概率的公理化定义与随机变量的概念
    卸载 Anaconda 转用 Miniconda
    傅立叶变换
    SL-主成分分析(PCA)
  • 原文地址:https://www.cnblogs.com/lzghyh/p/12587101.html
Copyright © 2011-2022 走看看