Живые уведомления Диаграмма классов UML

Я пытаюсь реализовать живую систему уведомлений (например, fb, xing, twitter ..). Поэтому я создал диаграмму классов UML перед созданием сущностей. Витрина следующая:


РЕДАКТИРОВАТЬ: Я думал об этом подходе, и кажется, что это не правильный. Давайте проверим следующий сценарий: Пользователь U добавляет к изображению события E I комментарий C. Как правильно сохранить это, я имею в виду, что EventNotification имеет ссылку только на событие E, но не на I и C. Поэтому мне нужно создать Класс EventImageNotification, и это будет беспорядок. Было бы лучше, если бы у вас был только один класс «Уведомления» и в него было добавлено поле «метаданных», в котором хранятся ссылки на все задействованные поля?


(Я использую OR-Mapper для реализации отношений позже).

[1] Один пользователь может создавать события, например, «Silvester Party 2015». (Один ко многим).
Это событие имеет панель мониторинга, на которой пользователи могут подписаться на получение обновлений, когда создатель публикует что-либо об этом событии (ManyToMany).

[2] Когда пользователь публикует что-то на информационной панели события, подписанные пользователи должны получать уведомления. Поэтому я создал класс EventNotification. Отношения между пользователем и EventNotification — это ManyToMany.

[3] Чтобы сохранить его в чистоте, я создал класс AbstractNotification, который связан с типом Notification. Тип уведомления — это что-то вроде name = «EventPost» и template = «User пользователь опубликовал что-то новое о событии __event «.

[4] Абстрактный класс NotificationConnector предоставляет поля классу отображения между EventNotification и User (UserEventNotification). Я создал их, чтобы легко расширять их в будущем, например, Пользователь может создавать Книги, которые также вызывают события и т. д. Затем мне нужно будет создать один класс «BookNotification» и один «UserBookNotification» для хранения уведомлений для этой новой сущности.

Этот подход хорош или полностью испорчен? Пожалуйста, расскажите мне ваши идеи об этой диаграмме:

(Стрелки для построения ассоциаций должны были быть обычными линиями, инструмент, который я использовал, просто не мог этого сделать).

Уведомление UML

21

Решение

Всего несколько замечаний:

  • Два абстрактных класса кажутся излишними, поскольку вы используете их только в одном контексте.
  • hasсоединение от User должен пойти в UserEndNotification а не абстрактный класс (который я рекомендую отбросить в любом случае).
  • Я бы сделал NotificationType <<enumeration>>
  • вместо использования owns Отношение я бы использовал класс ассоциации между User а также Event и добавить isOwner а также isSubscriber имущество.
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]