В приложении такая структура:
Component\service\CatalogProductRepository
Component\domain\CatalogProductRepositoryInterface
Component\cache\CatalogProductRepositoryCache
Возникла проблема с использованием этого компонента. В данный момент для инициализации нужно выполить:
$baseModel = new Component\service\CatalogProductRepository;
$cache = new Component\Cache;
$model = new Component\cache\CatalogProductRepositoryCache($baseModel, $cache);
Пришла идея использовать фабрику, но как ее правильно сделать - не ясно. Я вижу 2 варианта:
1. Component\factory\CatalogProductRepositoryFactory.
$model = CatalogProductRepositoryFactory::create(true); // create($useCache = false)
Но для каждой сущности придется создавать свою фабрику.
2. Component\Factory.
$model = Factory::create('CatalogProductRepository', true); // create($model, $useCache = false)
Что лучше?
p.s.
идея от
Сергей Протько