zoukankan      html  css  js  c++  java
  • 问的好,这就是简单工厂和工厂方法的区别所在

    简单工厂模式的最大优点在于工厂类中包含了必要的判断逻辑,根据客户端的选择条件动态的实例化相关的类,对于客户端来说,去除了与去除了与具体产品的依赖,想要与你不用关心你使用的是哪个,我来帮你搞定。就像你的计算器,让客户端不用实例那个运算,只需要把“+”传递给工厂就可以了,工厂会动态的实例化那个类,客户端只要管运算,不同的实例会有不同的运算,但是问题也在这里,比如我们在新增一次 给N做M次方的运算,那么必须要在简答工厂模式中 新增Case分枝,修改原有的类?那可不是什么好方法,这等于说,我们不但对扩展开始,也对修改开放了,违反了,开放-封闭原则。

    怎么解决呢?

    我们犟龟这个工厂类与分枝耦合,那么就对它下手,根据依赖倒转倒转原则,我们把工厂类抽象出一个接口,这个接口只有一个方法,就是创建抽象产品的工厂方法,然后,所有要生成的工厂都去实现这一个接口,这样一个简单工厂模式的工厂可u编程一个工厂抽象机

    背了这么多的概念,我认为 方法工厂模式相对与简单工厂模式,没有什么特别的优势,除了,简单工厂确实算是,与具体的多个实现相互耦合之外,不满足依赖倒置原则,其他可以说基本上没有任何的优势,还有一点,除以方法工厂的 可以保证 一块程序段,替换实现是非常容易的之外,其他相对与简单工程模式,真的没有任何的优势。

  • 相关阅读:
    ScrollView嵌套EditText联带滑动的解决的方法
    POJ 2003 Hire and Fire (多重链表 树结构 好题)
    leetcode笔记:Bulls and Cows
    PHP中使用ActiveMQ实现消息队列
    WPF模拟键盘输入和删除
    DLLImport的用法C#
    Net Core 的配置模式以及热重载配置
    简体与繁体转换
    Webdings字体、Wingdings字体对照表、用CSS3绘制的各种小图标
    查询大于2分钟的数据
  • 原文地址:https://www.cnblogs.com/wangchaodong/p/12002221.html
Copyright © 2011-2022 走看看