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

    使得创建者与调用者分离

    三种实现方式:

    • 简单工厂模式:

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

    • 工厂方法模式:

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

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

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

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

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

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

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


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

  • 相关阅读:
    POJ 3321:Apple Tree + HDU 3887:Counting Offspring(DFS序+树状数组)
    BZOJ 1026:windy数(数位DP)
    POJ 3087 Shuffle'm Up
    POJ 1835 宇航员
    差分约束系统
    POJ
    2016 百度之星初赛 Gym Class(优先队列+拓扑排序)
    HDU 4786 Fibonacci Tree
    Codeforces 691D Swaps in Permutation
    FZU 2195 检查站点
  • 原文地址:https://www.cnblogs.com/DDiamondd/p/10969026.html
Copyright © 2011-2022 走看看