Официальное название шаблона переопределения классов Magento? - PullRequest
1 голос
/ 27 апреля 2010

Magento - это новая (за последние 5 лет) система электронной коммерции на основе PHP с архитектурой, которая похожа на инфраструктуру Java Spring (или, как мне сказали)

Одна из особенностей Framework определенноклассы не создаются напрямую.Вместо того, чтобы делать что-то вроде

$model = new Mage_Foo_Model_Name();

, вы передаете идентификатор в статический метод глобального объекта приложения

$model = Mage::getModel('foo/name');

, и это создает экземпляр класса для вас.

Одной из побед этого подхода является то, что getModel проверяет глобальную систему конфигурации на наличие идентификатора foo / name и создает имя класса, найденное в системе конфигурации.Это позволяет вам изменить поведение модели всей системы с одним изменением конфигурации.

Существует ли формальное название «Банда четырех» или другое, которое описывает этот шаблон системы / дизайна?Сама реализация выглядит как классический шаблон Factory, но меня особенно интересует весь аспект «переопределить класс в системе через конфигурацию».Есть ли имя / понятие, которое охватывает это, или оно содержится в мировоззрении Фабрики?

Ответы [ 2 ]

4 голосов
/ 27 апреля 2010

Это похоже на шаблон проектирования Factory .


Цитирование записи в Википедии для Шаблон фабричного метода (выделено) :

это касается проблемы создания объекты (продукты) без указания точный класс объекта , который будет создано.
Заводская методика проектирования шаблон решает эту проблему путем определение отдельного метода для создание объектов, которые подклассы затем можно переопределить, чтобы указать производный тип продукта, который будет создано.

А:

Вне рамок дизайна, термин фабричный метод также может относиться к методу завода, основной целью является создание объектов .


Пара других интересных ссылок:

1 голос
/ 27 апреля 2010

Похоже на сервисный локатор .

В этом шаблоне используется центральный реестр, известный как «указатель службы», который по запросу возвращает информацию, необходимую для выполнения определенной задачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...