zoukankan      html  css  js  c++  java
  • 工厂方法的简单理解

    简单工厂的结构
    IProduct
    {
       公共方法
    }

    SimpleFactoryBuildProduct
    {
       static IProduct Create(类名)
       {
          switch(类名)
          {
             case Product1: return new Product1();
             case Product2: return new Product2();
          }
       }
    }

    product1 : IProduct
    {}
    product2 : IProduct
    {}

    programe
    {
       Main()
       {
          Product1 p1 = SimpleFactoryBuildProduct.Create("Product1");
          Product2 p2 = SimpleFactoryBuildProduct.Create("Product2");
       }
    }

    工厂方法解决问题的意图如下(拙见):
    工厂方法世纪上没有省略要做的工作。象所有设计模式一样,工厂方法提供一个更加抽象的视角归纳问题。最理想的应用工厂方法的场景时抽象产品具有所有产品的公共方法,在具体使用时可以用抽象产品代替所有具体产品(也就是说抽象产品具有产品的所有对外接口);这样抽象工厂提供了统一管理产品生成的场所,通过约定(要产品找工厂),为产品提供了统一生成接口。

    该模式对开闭原则的实现度:
    可以在不该变客户端原有系统的情况下新增一个产品,但是如果要使用新产品时出外。
    如果要增加一个新的产品,需要增加该产品的实现,并在工厂方法中新增一个创建项。

  • 相关阅读:
    一、flink架构模型
    每日看点
    argparse模块用法实例
    Python 牛刀小试
    spark 编程基础
    我想过的100种暴富机会
    hadoop大数据架构
    centOS7 ip 配置
    classNotFound异常的一个原因
    linux上部署java项目
  • 原文地址:https://www.cnblogs.com/songshuqun/p/757292.html
Copyright © 2011-2022 走看看