Как смоделировать это отношение - PullRequest
0 голосов
/ 23 октября 2018

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

Первый вопрос:

В моем классе пользователя есть следующие свойства:

    Guid AccountId { get; set; }
    string Name { get; set; }

    List<Contact> Contacts { get; set; }
    List<Chat> Chats { get; set; }

Теперь я хочу смоделировать класс Contact, и вот что я придумал:

    Guid ContactId { get; set; }
    string Name { get; set; }

    User UserA { get; set; }
    User UserB { get; set; }

Моя проблема с классом Contact заключается в том, что у каждого пользователя есть список контактов.Благодаря этому контакту один пользователь может получить доступ к контактам и чатам другого пользователя.

Это действительная проблема?Если так, как я могу предотвратить такое поведение?

Второй вопрос:

Как я мог бы назвать UserA & UserB более описательным образом?Использование букв или цифр для подсчета чего-то кажется грязным.

1 Ответ

0 голосов
/ 23 октября 2018

Ваш класс Контакты создает проблему круговой ссылки, которую я бы не рекомендовал.Класс Contact не должен иметь свойства UserA и UserB.Класс Contact будет отвечать только за обработку контактных данных:

  1. AccountId
  2. Name
  3. LastName
  4. NickName
  5. IsBlackListed

В этом сценарии ваш второй вопрос больше не актуален, и вы наложили ответственность.

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