Magento 2 गैर-इंजेक्शन के लिए कारखाने की कक्षाओं का उपयोग कर रहा है।
उदाहरण के लिए उत्पाद वर्ग: ProductFactory
उदाहरण के लिए ग्राहक वर्ग:CustomerFactory
मुझे समझ नहीं आ रहा है कि फ़ैक्टरी पैटर्न किस प्रकार का है?
क्योंकि 1 कारखाना वर्ग से जुड़े प्रत्येक वर्ग के लिए। मैं इसके कुछ डुप्लिकेट सोच रहा हूँ।
क्यों हम के लिए सार कारखाना नहीं बनाना चाहिए CustomerFactory, ProductFactoryआदि?
और उदाहरण के लिए भी:
हम पारित कर सकते हैं AbstractFactoryप्रकार की जाँच के लिए के बजाय ProductFactoryमें ProductRepositoryवर्ग निर्माता।
तो हम ProductRepositoryऔर के बीच तंग युग्मन से बच सकते हैंProductFactory
सार फैक्टरी वर्ग:
namespace Magento\Framework\ObjectManager\Code\Generator;
/**
* Abstract Factory class
*/
abstract class AbstractFactory
{
/**
* Object Manager instance
*
* @var \Magento\Framework\ObjectManagerInterface
*/
protected $_objectManager = null;
/**
* Instance name to create
*
* @var string
*/
protected $_instanceName = null;
/**
* Create class instance with specified parameters
*
* @param array $data
* @return \Magento\Catalog\Model\Product
*/
public function create(array $data = array())
{
return $this->_objectManager->create($this->_instanceName, $data);
}
}
सार फैक्टरी कार्यान्वयन:
namespace Magento\Catalog\Model;
use Magento\Framework\ObjectManager\Code\Generator\AbstractFactory;
/**
* Factory class for @see \Magento\Catalog\Model\Product
*/
class ProductFactory extends AbstractFactory
{
public function __construct(\Magento\Framework\ObjectManagerInterface $objectManager, $instanceName = '\\Magento\\Catalog\\Model\\Product')
{
$this->_objectManager = $objectManager;
$this->_instanceName = $instanceName;
}
}
वस्तु प्रबंधक और कारखाने के बीच क्या संबंध है?
वस्तुओं का पीछा करना बहुत है:
उदाहरण के लिए
ProductRepository(यहाँ हम इसे ग्राहक के रूप में कह सकते हैं) कोProductऑब्जेक्ट की आवश्यकता है।इसके लिए इसकी विशिष्ट
ProductFactoryवस्तु पर निर्भर करता है।ProductFactoryऑब्जेक्ट ऑब्जेक्ट पर निर्भर करता हैObjectManager।ObjectManagerऑब्जेक्ट फैक्टरी ऑब्जेक्ट (यहांDeveloper Object) पर निर्भर करता है ।
बेशक वे ढीले युग्मन के लिए इंटरफेस का उपयोग कर रहे हैं। अभी भी वास्तव में भ्रामक प्रवाह।
आप किसी Magento 2 कारखाने पैटर्न के साथ में गहराई से लाभ दे सकते हैं और यह भी कैसे Magento 1 से अलग है?