我对“工厂相关”设计模式及其 OOP 实现的理解一直非常简单。
- A 《工厂方法》是类内部的方法,该方法具有接口(或抽象类)作为返回类型,并基于某些内部逻辑构造实现该接口的对象。
- A “工厂”是一个只包含工厂方法的类
- An 《抽象工厂》是一个仅包含工厂方法的接口(或抽象类)
但我最近偶然发现了有关该主题的维基百科文章(Factory, 抽象工厂)这让我有些困惑,尤其是关于什么是“工厂”处于面向对象编程中。
以下是几段引述:
- 返回“新”对象的子例程可以称为“工厂”,如工厂方法或工厂函数。
- 工厂用于各种设计模式
- “抽象工厂模式”是一种构建工厂集合的方法。
- 工厂是代码中构造对象的具体类的位置
这引起了一些问题:
(1)&(2) 这是否意味着工厂不是一个类或一个对象,而是一段逻辑?
(2)“Factory”本身不是一种模式吗?
(3) 这里的“收集”是什么意思?这只是一种说法“你可以有几个实现相同接口的工厂(这是一个抽象工厂)”吗?
(4)什么???
谁能澄清这意味着什么?难道我最初对工厂的理解不正确吗?
看这个wiki其中说:
在面向对象编程(OOP)中,工厂是一个对象
创建其他对象 - 正式工厂是一个函数或方法
从某些返回不同原型或类的对象
方法调用,假定是“新的”。[a] 更广泛地说,a
返回“新”对象的子例程可以称为
“工厂”,如工厂方法或工厂函数。这是一个基本的
OOP 中的概念,并构成了许多相关软件的基础
设计模式。
所以具体回答你的问题:
(1)&(2) 这是否意味着工厂不是一个类或一个对象,而是一段逻辑?
不,这意味着您可以使用对象(工厂)创建其他对象。
(2)“Factory”本身不是一种模式吗?
有不同的设计模式,工厂模式就是其中之一。因此,当您使用工厂创建对象时,创建其他对象的模式就是“工厂模式”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)