2016-12-13 2 views
0

enter image description hereconfuse методы в ассоциации класс диаграмма

У меня выше класс схема. Я очень смущен тем, должны ли указанные выше методы продукта размещаться в классе Product или в пользовательском классе. Если я прав на моей диаграмме, я должен только разместить на ней средство настройки и метод getters?

+0

Просто быстрое примечание - очевидно, вы дублируете ту же информацию. Ваши продукты атрибутов на NormalUser, вероятно, такие же, как то, что вы представили с помощью комбинированной агрегации. В соответствии со спецификацией UML встроенный атрибут и ассоциация, нарисованные как строка, имеют одинаковую семантическую значимость (с возможностью предоставления более подробной информации в случае атрибута типа aggregationKind или навигационной навигации). Таким образом, при агрегации в конце продукта вы должны поместить роль 'products', и вы должны удалить встроенную версию атрибута из NormalUser. – Ister

ответ

2

Да, ваш подход с размещением addProduct, deleteProduct и т. Д. На NormalUser является правильным.

Возможно, у вас может быть, например, операция редактирования на продукте для обработки вызовов (например) NormalUser в зависимости от вашей функциональности/проекта/дизайна/....

Также не используйте геттеры и сеттеры (или, по крайней мере, сделайте их закрытыми), если вы действительно не знаете, что делаете. Предоставление общедоступных аксессуаров ко всем атрибутам работает (почти) точно так же, как сделать все атрибуты общедоступными, эффективно нарушая принцип герметизации/инкапсуляции.

Смежные вопросы