在Magento 2中,工厂模式是什么?它有什么作用?

5
在Magento 2中,工厂模式是什么?它有什么用途?由于我刚接触magento,所以能否请您详细解释一下。
1个回答

7

工厂定义:

工厂是服务类,用于实例化非可注入类,即表示数据库实体的模型。它们在 ObjectManager 和业务代码之间创建了一层抽象。

仓库定义:

仓库对象负责将您的对象信息读取和写入到对象存储中。

使用仓库进行完全加载 $model->load() 不是服务契约的一部分。关于这个特定主题,我有一个问题,你可能会发现答案很有用:是否有理由优先选择 $model->load() 而不是服务契约?

使用工厂创建新实体 仓库没有创建新实体的方法,所以在这种情况下,您需要一个工厂。但是使用工厂来创建接口,例如 Magento\Catalog\Api\Data\ProductInterfaceFactory - 它将根据 DI 配置创建正确的实现。

然后使用 repository->save() 方法保存它。

https://magento.stackexchange.com/questions/158081/when-should-we-use-a-repository-and-factory-in-magento-2

更多内容请参阅开发文档 http://devdocs.magento.com/guides/v2.0/extension-dev-guide/factories.html


非常感谢,这对我很有帮助。 - Renga
@WowRenga 没问题!我看到你在SO上还比较新。如果你觉得这个答案解决了你的问题,请点击绿色的勾号将其标记为“已接受”。这有助于保持关注那些仍未得到答案的问题。 - AJK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接