什么是OOP的工厂

时间:2016-03-03 07:13:06

标签: oop design-patterns factory

我对“工厂相关”设计模式及其OOP实现的理解一直非常简单。

  • “工厂方法”是类中的一个方法,它将接口(或抽象类)作为返回类型,并根据某些内部逻辑构造实现此接口的对象。
  • “Factory”是仅包含工厂方法的类
  • “抽象工厂”是仅包含工厂方法的接口(或抽象类)

但我最近偶然发现维基百科关于这个主题的文章(FactoryAbstract factory)让我有些困惑,尤其是关于OOP中“Factory”的内容。

以下是几个引用:

  
      
  1. 返回“新”对象的子程序可称为“工厂”,如工厂方法或工厂功能。
  2.   
  3. 工厂用于各种设计模式
  4.   
  5. “抽象工厂模式”是一种构建工厂集合的方法。
  6.   
  7. 工厂是构造对象的代码中具体类的位置
  8.   

引起了一些问题:

(1)&(2)这是否意味着工厂不是一个阶级或一个对象,而是一个逻辑?

(2)“工厂”本身不是一种模式吗?

(3)“收集”在这里意味着什么?它只是一种说法“你可以有几个工厂实现相同的接口(这是一个抽象工厂)”吗?

(4)什么???

任何人都可以澄清这意味着什么吗?我对工厂的初步了解是不正确的?

1 个答案:

答案 0 :(得分:4)

请看这个wiki说:

  

在面向对象编程(OOP)中,工厂是一个对象   创建其他对象 - 正式工厂是一种功能或方法   从一些返回变化的原型或类的对象   方法调用,假定为" new"。[a]更广泛地说,a   返回" new"的子程序对象可以称为a   "工厂",如工厂方法或工厂功能。这是一个基本的   OOP中的概念,并形成了许多相关软件的基础   设计模式。

所以要具体回答你的问题:

  

(1)&(2)这是否意味着工厂不是一个阶级或一个对象,而是一个逻辑?

不,这意味着您可以使用对象(工厂)创建其他对象。

  

(2)"工厂"不是模式本身?

有不同的设计模式,其中工厂模式是一个。因此,当您使用工厂创建对象时,创建其他对象的模式是"工厂模式"

相关问题