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(),
]);