Magento - это новая (за последние 5 лет) система электронной коммерции на основе PHP с архитектурой, которая похожа на инфраструктуру Java Spring (или, как мне сказали)
Одна из особенностей Framework определенноклассы не создаются напрямую.Вместо того, чтобы делать что-то вроде
$model = new Mage_Foo_Model_Name();
, вы передаете идентификатор в статический метод глобального объекта приложения
$model = Mage::getModel('foo/name');
, и это создает экземпляр класса для вас.
Одной из побед этого подхода является то, что getModel проверяет глобальную систему конфигурации на наличие идентификатора foo / name и создает имя класса, найденное в системе конфигурации.Это позволяет вам изменить поведение модели всей системы с одним изменением конфигурации.
Существует ли формальное название «Банда четырех» или другое, которое описывает этот шаблон системы / дизайна?Сама реализация выглядит как классический шаблон Factory, но меня особенно интересует весь аспект «переопределить класс в системе через конфигурацию».Есть ли имя / понятие, которое охватывает это, или оно содержится в мировоззрении Фабрики?