Я знаю, что доменные модели и картографы данных являются выбором сноба ООП (используя 'сноб' дополняющим образом, как его называет Мартин Фаулер) - однако даже Фаулер говорит в POEAA, что
«Active Record - хороший выбор для логики домена, которая не слишком сложна ...»
У меня есть простая модель домена продукта и счета, не слишком много таблиц / объектов / концепций для моделирования, и отношения не слишком сложны. Итак, это хороший вариант использования Active Record?
Фаулер также утверждает, что Active Record похожа на шлюз данных Row, с той разницей, что Active Record имеет доменную логику.
Предполагая, что это действительный вариант использования Active Record, и, поскольку Zend предоставляет Row Data Gateway, интеллектуальное решение (в отличие от простого добавления имени таблицы), расширяющее эти объекты, кажется хорошим способом создания объектов Active Record с использованием Zend Framework. Действительно, эта концепция обсуждается в этом ответе SO . Является ли это приемлемым способом реализации Active Record в Zend Framework?
Конечно, самым популярным ответом на этот вопрос является один от Билла Карвина (который работал над реализацией Zend's Db), который рекомендует не , используя Zend_Db_Table
или Zend_Db_Row
таким образом (по крайней мере, так я это прочитал).
Я полностью согласен с желанием перейти к решению Data Mapper, если рассматриваемая модель предметной области становится более сложной. Я посмотрел на различные ORM / DataMappers (не только для рассматриваемой модели предметной области, в последнее время читал больше о шаблонах проектирования ООП), и они действительно кажутся слишком большими для некоторых вещей.