Структурирование уровня доступа к данным - PullRequest
0 голосов
/ 09 марта 2019

Для моего приложения я смотрю на использование ORM и в настоящее время пытаюсь решить, должен ли уровень домена взаимодействовать с ним через объект доступа к данным, репозитории или что-то еще?Я не решаюсь связать ORM с репозиториями, потому что они могут стать избыточными, если объекты ORM идентичны с объектами домена, но наличие одного большого DAO кажется нелепым.Я хочу сохранить свой SQL централизованным, но я не могу понять, какой из этих вариантов, если таковые имеются, был бы наиболее целесообразным.Любые предложения по подходящей схеме дизайна?

1 Ответ

1 голос
/ 11 марта 2019

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

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

Хорошая новость заключается в том, что большинство языков / фреймворков имеют некоторую форму библиотеки отображений, которая позволяет автоматически сопоставлять один объект с другим с аналогичной структурой.Это отличный способ ускорить это на начальном этапе, при этом предоставляя себе гибкость в создании ручного отображения, когда требования меняются из-под вас.

...