• 工厂模式及其抽象工厂


    1 工厂方法模式

    定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到一个子类。

    理解:每个实现对应一个具体的工厂类。每一个工厂依赖一个具体的实现,工厂的存在依赖其具体的实现

            客户端需要知道具体的工厂类。

    内容:抽象工厂类及具体工厂,操作抽象类及具体操作类,工厂类创建操作类,每个工厂类依赖具体的操作类。

    作用:将简单工厂模式的修改从工厂类转移到客户端,符合开放封闭原则。缺点是开发量较大,客户端需要修改。

            1.在编码时不能预见需要创建哪种类的实例。
            2.系统不应依赖于产品类实例如何被创建、组合和表达的细节

    其他:解决客户端需要修改的策略:利用反射机制和XML配置,完成模式的完美

    UML图:

    2 抽象工厂模式:

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

    理解: 如sqlServer和Oracle两个家族,每个产品族,如用户类,部门类

    作用:应对多产品家族的转换

    内容:多个产品族抽象类以及具体实现类,工厂抽象类及其具体工厂类

    其他:产品族:位于不同产品等级结构中,功能相关联的产品组成的家族。如跑车族,赛车族等。

    UML图:

    2 demo 多个数据库种类和实现

    每一个数据库就是一个具体抽象类

    3 对抽象工厂模式的改进

    将工厂类,简化为一个DataAccess类,内部选择具体的产品对象

  • 相关阅读:
    解题:NOI 2007 社交网络
    解题:2018九省联考 一双木棋
    125. 背包问题 II
    152. 组合
    140. 快速幂
    148. 颜色分类
    144. 交错正负数
    83. 落单的数 II
    124. 最长连续序列
    59. 最接近的三数之和
  • 原文地址:https://www.cnblogs.com/wwwfj/p/3227397.html
Copyright © 2020-2023  润新知