什么是OOP中的工厂

And*_*ges 5 oop design-patterns factory

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

  • “工厂方法”是具有的接口(或一个抽象类)作为返回类型和实现基于某些内部逻辑该接口构造的对象类内的方法。
  • 一个“工厂”是只包含工厂方法的类
  • 一个“抽象工厂”是一个接口(或一个抽象类),其仅包含工厂方法

但是我最近偶然发现了有关该主题的Wikipeda文章(FactoryAbstract factory),这使我有些困惑,尤其是关于OOP中的“ Factory”是什么。

这里有几个引号:

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

引起一些问题:

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

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

(3)“收藏”在这里是什么意思?只是说“您可以有多个实现相同接口的工厂(这是一个抽象工厂)”的一种方式吗?

(4)什么?

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

Rah*_*thi 6

看一下这个维基,上面写着:

在面向对象编程(OOP)中,工厂是用于创建其他对象的对象-形式上,工厂是从某个方法调用(假定为“新”)返回不同原型或类的对象的函数或方法。 [a]更广泛地讲,返回“新”对象的子例程可以称为“工厂”,如工厂方法或工厂功能中那样。这是OOP中的基本概念,并且构成了许多相关软件设计模式的基础。

因此,专门回答您的问题:

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

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

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

有多种设计模式,其中工厂模式是一种。因此,当您使用工厂创建对象时,创建其他对象的方式就是“工厂模式”