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");
       }
    }

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

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

  • 相关阅读:
    c语言 malloc和free的实现
    gdb调试命令总结
    pycharm使用教程
    flask--relationship
    安装部署问题
    Flask的request.form和request.data有什么区别
    装饰器
    flask 权限
    flask--session
    数据库-触发器
  • 原文地址:https://www.cnblogs.com/songshuqun/p/757292.html
Copyright © 2011-2022 走看看