> Magento2中文手册 > Factories(工厂)

Factories(工厂)

概述

工厂是服务类。

对象管理器(ObjectManager)关系

Magento\Framework\ObjectManager 负责实例化对象的Magento应用类。 Magento禁止直接使用对象管理器(ObjectManager) 在你的代码中。

namespace Magento\Framework\App\Config;

class BaseFactory
{
  /**
   * @var \Magento\Framework\ObjectManager\Interface
   */
  private $_ObjectManager;

  /**
   * @param \Magento\Framework\ObjectManager\Interface $ObjectManager
   */
  public function __construct(\Magento\Framework\ObjectManager\Interface $ObjectManager)
  {
    $this->_ObjectManager = $ObjectManager;
  }
  /**
   * Create config model
   * @param string|\Magento\Framework\Simplexml\Element $sourceData
   * @return \Magento\Framework\App\Config\Base
   */
  public function create($sourceData = null)
  {
    return $this->_ObjectManager->create(\Magento\Framework\App\Config\Base::class, ['sourceData' => $sourceData]);
  }
}

使用工厂

您可以使用特定的模型获取工厂的单件实例 依赖注入.

下面的示例显示了一个类得到BlockFactory 通过构造函数实例:

function __construct ( \Magento\Cms\Model\BlockFactory $blockFactory) {
    $this->blockFactory = $blockFactory;
}
$block = $this->blockFactory->create();
$resultItem = $this->itemFactory->create([
  'title' => $item->getQueryText(),
  'num_results' => $item->getNumResults(),
]);