DAL: вопрос о границах хранилища - PullRequest
3 голосов
/ 27 июля 2010

Существует библиотека DAL, которая предоставляет дюжину репозиториев.Один репозиторий на объект.Существует PersonRepository & PhotoRepository.

Когда я добавляю новый метод в репозиторий, а метод работает с сущностью, становится очевидным, куда я должен его поместить.Если я хочу CreatePerson, я создам PersonRepository::Create(...) или, когда мне нужно обновить фотографию, я создам PhotoRepository::Update

Но когда метод работает с отношениями с сущностями, вещи иногда испаряются.Должен ли я создать PersonRepository::AssignPhoto(PersonId, PhotoId) или создать, например, PhotoRepository::AssingToPerson(PhotoId, PersonId)?

Если мне все ясно (я полагаю, что Person является более важной сущностью, чем Photo, поэтому я создам метод PersonRepository), некоторыеразработчики не находят подходящий метод и склонны создавать дубликаты в PhotoRepository.

Как минимизировать эту проблему?

Может быть, вы создаете оба метода (PersonRepository::AssignPhoto & PhotoRepository::AssignToPerson) одновременно (один метод делегирует вызов другого, где он реализован)?Или у нас будут строгие правила именования методов репозитория в команде?Или я могу изменить подход к границам хранилища?

1 Ответ

0 голосов
/ 27 июля 2010

В объектно-ориентированном мире у меня был бы объект Person с методом AssignPhoto .

. Обработка манипуляций с объектными отношениями над хранилищами выглядит как процедурный подход, по крайней мере, дляя.

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