• 工厂模式及其抽象工厂


    1 工厂方法模式

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

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

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

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

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

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

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

    UML图:

    2 抽象工厂模式:

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

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

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

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

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

    UML图:

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

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

    3 对抽象工厂模式的改进

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

  • 相关阅读:
    怎么洗掉衣服上的水粉颜料、丙烯颜料、水彩颜料、油画颜料
    HDU 2844 Coins(多重背包)
    oracle知识点
    java实现第六届蓝桥杯奇怪的数列
    java实现第六届蓝桥杯奇怪的数列
    java实现第六届蓝桥杯奇怪的数列
    java实现第六届蓝桥杯奇怪的数列
    java实现第六届蓝桥杯空心菱形
    java实现第六届蓝桥杯空心菱形
    java实现第六届蓝桥杯空心菱形
  • 原文地址:https://www.cnblogs.com/wwwfj/p/3227397.html
Copyright © 2020-2023  润新知