Существует библиотека DAL, которая предоставляет дюжину репозиториев.Один репозиторий на объект.Существует PersonRepository
& PhotoRepository
.
Когда я добавляю новый метод в репозиторий, а метод работает с сущностью, становится очевидным, куда я должен его поместить.Если я хочу CreatePerson, я создам PersonRepository::Create(...)
или, когда мне нужно обновить фотографию, я создам PhotoRepository::Update
Но когда метод работает с отношениями с сущностями, вещи иногда испаряются.Должен ли я создать PersonRepository::AssignPhoto(PersonId, PhotoId)
или создать, например, PhotoRepository::AssingToPerson(PhotoId, PersonId
)?
Если мне все ясно (я полагаю, что Person является более важной сущностью, чем Photo, поэтому я создам метод PersonRepository), некоторыеразработчики не находят подходящий метод и склонны создавать дубликаты в PhotoRepository.
Как минимизировать эту проблему?
Может быть, вы создаете оба метода (PersonRepository::AssignPhoto
& PhotoRepository::AssignToPerson
) одновременно (один метод делегирует вызов другого, где он реализован)?Или у нас будут строгие правила именования методов репозитория в команде?Или я могу изменить подход к границам хранилища?