В попытке сохранить хороший дизайн репозитория / IoC я пытаюсь найти наилучший подход к текущей проблеме.
Есть два объекта, Member
и Character
.
По сути, один член может иметь много символов. Достаточно просто.
Member
{
IList<Character> Characters { get; set; }
}
Есть IMemberRepository
...
interface IMemberRepository
{
MemberCreateStatus CreateMember(string email, string password);
bool ValidateMember(string email, string password);
bool ChangePassword(string email, string password, string newPassword);
void RecoverPassword(string email);
}
А есть ICharacterRepository
interface ICharacterRepository
{
Character CreateCharacter(string name);
}
Итак, мой вопрос довольно прост. Где я хочу добавить логику для добавления Character
к Member
? Я делаю это в IMemberRepository
? Это кажется громоздким для меня. Это выходит за рамки задач IMemberRepository
. Я добавлю это к ICharacterRepository
? Это тоже кажется мне немного странным, потому что предоставление этих знаний о членстве, кажется, нарушает их разделение. Какой лучший подход, чтобы принять здесь?
Если бы это был только один этот метод, это не было бы слишком большим делом - но между двумя классами должно произойти много других вещей. Каков «стандартный» подход к ситуации, когда два объекта связаны друг с другом? Я кодирую это в ASP.NET MVC .