我对“工厂相关”设计模式及其OOP实现的理解一直非常简单。
但我最近偶然发现维基百科关于这个主题的文章(Factory,Abstract factory)让我有些困惑,尤其是关于OOP中“Factory”的内容。
以下是几个引用:
- 返回“新”对象的子程序可称为“工厂”,如工厂方法或工厂功能。
- 工厂用于各种设计模式
- “抽象工厂模式”是一种构建工厂集合的方法。
- 工厂是构造对象的代码中具体类的位置
醇>
引起了一些问题:
(1)&(2)这是否意味着工厂不是一个阶级或一个对象,而是一个逻辑?
(2)“工厂”本身不是一种模式吗?
(3)“收集”在这里意味着什么?它只是一种说法“你可以有几个工厂实现相同的接口(这是一个抽象工厂)”吗?
(4)什么???
任何人都可以澄清这意味着什么吗?我对工厂的初步了解是不正确的?
答案 0 :(得分:4)
请看这个wiki说:
在面向对象编程(OOP)中,工厂是一个对象 创建其他对象 - 正式工厂是一种功能或方法 从一些返回变化的原型或类的对象 方法调用,假定为" new"。[a]更广泛地说,a 返回" new"的子程序对象可以称为a "工厂",如工厂方法或工厂功能。这是一个基本的 OOP中的概念,并形成了许多相关软件的基础 设计模式。
所以要具体回答你的问题:
(1)&(2)这是否意味着工厂不是一个阶级或一个对象,而是一个逻辑?
不,这意味着您可以使用对象(工厂)创建其他对象。
(2)"工厂"不是模式本身?
有不同的设计模式,其中工厂模式是一个。因此,当您使用工厂创建对象时,创建其他对象的模式是"工厂模式"