zoukankan      html  css  js  c++  java
  • 创建者模式 -- 工厂模式

    使得创建者与调用者分离

    三种实现方式:

    • 简单工厂模式:

      是根据不同的参数返回不同的实例,只有一个工厂。如果增加新的产品,会修改原来的代码,所以不完全满足OCP原则。

    • 工厂方法模式:

      不同的产品有不同的工厂(有一个总的工厂的接口)

    • 抽象工厂模式:(拥有多个产品类型,有多个产品接口)

      用来生产不同产品族的全部产品。

    简单工厂模式和工厂方法模式是针对于单个产品

    抽象工厂模式是针对于产品族

    简单工厂模式和工厂方法模式的对比:

    结构复杂度: 简单工厂模式只有一个工厂,工厂方法模式工厂数据随着产品增加而增加
    代码复杂度&管理上的难度: 工厂方法模式类多
    客户端编程复杂度:工厂方法模式虽然在工厂类结构中引入了接口从而满足了OCP,但是在客户端编码中需要对工厂类进行实例化,而简单工厂模式的工厂类是一个静态类,在客户端无需实例化,这无疑是个吸引人的优点


    简单工厂模式不完全满足OCP原则,工厂方法模式满足OCP原则,但是在一般情况下,使用简单工厂模式较多。 

  • 相关阅读:
    poj 3616 Milking Time
    poj 3176 Cow Bowling
    poj 2229 Sumsets
    poj 2385 Apple Catching
    poj 3280 Cheapest Palindrome
    hdu 1530 Maximum Clique
    hdu 1102 Constructing Roads
    codeforces 592B The Monster and the Squirrel
    CDOJ 1221 Ancient Go
    hdu 1151 Air Raid(二分图最小路径覆盖)
  • 原文地址:https://www.cnblogs.com/DDiamondd/p/10969026.html
Copyright © 2011-2022 走看看