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

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

    怎么解决呢?

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

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

  • 相关阅读:
    HDU2149-Public Sale
    分页和多条件查询功能
    hdu 4691 最长的共同前缀 后缀数组 +lcp+rmq
    BZOJ 2588 Count on a tree (COT) 是持久的段树
    windows 设置脚本IP
    hdu 4912 Paths on the tree(树链拆分+贪婪)
    分散式-ubuntu12.04安装hadoop1.2.1
    struts详细解释拦截器
    Codeforces 459E Pashmak and Graph(dp+贪婪)
    C#中的数据格式转换 (未完待更新)
  • 原文地址:https://www.cnblogs.com/wangchaodong/p/12002221.html
Copyright © 2011-2022 走看看