• 设计模式——工厂(简单工厂、工厂方法、抽象工厂)


    开发过程中经常听到工厂这个词,其实根据个人经验,简单工厂用的是比较多的。工厂方法和抽象工厂是GoF23种设计模式中的一种,而我们常使用的简单工厂并不是一种设计模式,可以说是我们自己的一种俗称。

    定义

    简单工厂: 直接通过一个Factory类创建多个实体类的构造方式。
    
    工厂方法: 一个抽象产品类,可以派生出多个具体产品类。一个抽象工厂类,可以派生出多个具体工厂类。每个具体工厂类只能创建一个具体产品类的实例。
    
    抽象工厂:个抽象产品类,每个抽象产品类可以派生出多个具体产品类。一个抽象工厂类,可以派生出多个具体工厂类。每个具体工厂类可以创建多个具体产品类的实例。
    

    工厂方法与抽象工厂区别:工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。 工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。

    模板

    简单工厂

    工厂方法

    1. AbstractProduct : 抽象产品 (在工厂方法模式中只有一个AbstractProduct)
    2. ConcreteProductXXX : 具体的产品类
    3. AbstractFactory: 抽象工厂类
    4. ConcreteFactory: 具体工厂类(每个工厂只能创建一个具体产品)

    抽象工厂

    1. ProductX : 产品接口(抽象工厂中可以有多个产品抽象类)
    2. ConcreteProductX : 具体产品
    3. Creator: 抽象工厂类(也可以叫Factory,定义了创建多个产品种类的的接口)
    4. ConcreateCreateX: 具体工厂

    实例

    参考: 浅谈简单工厂,工厂方法,抽象工厂的区别和使用

    优点

    1. 将对象的构造与获取隔离
    2. 面向接口编程,可以动态增加Product/Factory,而且方便单元测试
    3. 一般还可以在工厂中统一维护一个单例(单例模式、静态方法)
    4. 广义上讲其实工厂模式也是一种外观模式,屏蔽了具体的创建过程。

    缺点

    1. 增加了多个类/接口,增加了系统的复杂性

    参考:
    https://www.cnblogs.com/gclokok/p/10029088.html

  • 相关阅读:
    适合于小团队产品迭代的APP测试流程
    【转】软件测试上线标准
    安全性测试之修改密码
    LoadRunner 实现监控Tomcat
    【转】人生应该接受的教育
    晓光聊《小厂如何做测试》
    由测试需要多少编程知识想到的
    12款很棒的浏览器兼容性测试工具推荐
    最近感悟测试人员需要的一种能力
    APP测试功能点总结
  • 原文地址:https://www.cnblogs.com/NeilZhang/p/12153200.html
Copyright © 2020-2023  润新知