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

    1 工厂方法模式

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

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

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

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

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

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

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

    UML图:

    2 抽象工厂模式:

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

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

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

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

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

    UML图:

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

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

    3 对抽象工厂模式的改进

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

  • 相关阅读:
    Android开发使用的常见第三方框架汇总
    15 个 Android 通用流行框架大全(归类)
    android布局属性大全
    Android 开源项目分类汇总
    有哪些 Android 大牛的 blog 值得推荐?
    Android Activity 知识点全面总结
    android知识点大总结
    自动生成fbi代码网站
    androidstudio 快捷键设置以及导入快捷键模版
    Android Studio调背景颜色
  • 原文地址:https://www.cnblogs.com/wwwfj/p/3227397.html
Copyright © 2011-2022 走看看