zoukankan      html  css  js  c++  java
  • 一般方法和工厂方法的对比

    简单工厂模式的类图如下:

    简单工厂根据具体的指令创建指定的对象,简单工厂能创建的对象各类事先都是在代码里面写好的。

    工厂方法模式的类图如下:

    两种方式做一个对比,以需求的变化,来显示更改的内容和位置

    什么样的需求?计算器要求添加新的运算种类 开平方

    简单工厂里面需要加上开平方的功能类,然后去更改工厂类,添加case语句

    这样客户端需要开平方的功能时,只需要传入开平方的标识就好了

    要是工厂方法的话,添加开平方功能类,添加开平方工厂类,还得修改客户端

    增加了客户端的复杂性。

    简单工厂和工厂方法的区别:

    简单模式最大的优点是工厂类中包含了必要的逻辑判断,根据客户端的选择动态的选择实例化功能类,对于客户端解除了依赖

    工厂模式实现时,客户端需要决定实例化哪一个工厂类来实现 运算,选择判断的问题还是存在的,工厂方法把简单工厂 的内部逻辑移到了客户端来进行,想加功能原来是改工厂类,现在是改客户端

    工厂方法克服了简单工厂违背的开闭原则,又保持了封装对象创建过程的优点

    工厂方法保持了简单工厂的优点,克服了缺点,但缺点是由于每增加一个产品就需要增加一个产品的工厂类,增加了开发量

  • 相关阅读:
    MD5 Hashing in Java
    Caching in Presto
    ORC 文件存储格式
    Presto 性能优化点
    数据分页问题
    ES
    ES
    ES
    ES
    ES
  • 原文地址:https://www.cnblogs.com/gdnyfcuso/p/6810965.html
Copyright © 2011-2022 走看看