Должен ли я использовать мои объекты, сгенерированные ORM, в качестве объекта моего домена? - PullRequest
3 голосов
/ 15 мая 2011

Мой ORM генерирует объекты, отражающие структуру таблицы базы данных.Эти объекты являются расширяемыми, поэтому я могу добавлять новые свойства и методы.Этот объект не содержит никакой логики персистентности, поэтому я предполагаю, что он постоянно невежественен.

Должен ли я использовать этот объект в качестве объектов моего домена или создать новые объекты для модели основных доменов?

Как профессионал для создания нового объекта, я бы подумал, что когда таблица базы данных изменится, это не сломает приложение.

В качестве довода для создания нового объекта я бы рассмотрел дополнительное отображениебольше сложности в приложении.

Ответы [ 2 ]

5 голосов
/ 15 мая 2011

Вместо использования ORM для извлечения данных из БД в форме, которая относится к тому, как БД видит данные, создайте ваши доменные объекты, чтобы фактически соответствовать вашему домену, а затем используйте ORM для сохранения ваших доменных объектов в базе данных вкаким бы образом БД не нуждалась.

Другими словами, вы делаете это задом наперед.Сначала получите правильную модель предметной области, а затем позвольте своему ORM беспокоиться о том, как сохранить их в БД.

1 голос
/ 15 мая 2011

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

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

...