Лучше ли выводить создание объекта из XML или делать это из конструктора? - PullRequest
4 голосов
/ 11 мая 2009

У меня есть несколько классов PHP, которые я создаю из конфигурации XML. То, что я хотел бы знать, это:

Мне лучше (с объектно-ориентированной точки зрения) иметь фабричные методы для создания этих классов из XML или передавать XML в конструктор для создания классов?

Преимущество фабричного подхода состоит в том, что он отделяет конструкцию от использования и упрощает использование альтернативных реализаций, но затем вам необходимо выставить сеттеры или передать целую кучу объектов конструктору, составляющему его состояние.

Еще одна тонкость этого заключается в том, что передача в XML позволяет создавать объекты сверху вниз, а некоторым объектам, расположенным ниже, потребуются ссылки на эти объекты над ними. Второй метод приведет к чему-то более восходящему.

Или есть еще какой-то способ создания шаблона дизайна?

Мысли

Ответы [ 2 ]

1 голос
/ 12 мая 2009

Для чистого дизайна было бы лучше сохранить код для создания Foo из XML за пределами Foo полностью, но на некоторой фабрике. Таким образом, Foo может остаться прежним, если вы хотите добавить способ его создания из JSON, CSV или любых других данных.

1 голос
/ 11 мая 2009

Похоже, вам нужен какой-то фреймворк для внедрения зависимостей. Здесь прекрасная схема симфонического DI здесь . Хорошая структура DI поможет вам разработать чистую и тестируемую архитектуру, которая может облегчить такие проблемы, как конструкторы, требующие слишком много аргументов.

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