A диаграмма классов является структурной диаграммой. Поведения (например, добавление, удаление и т. Д.) В нем не должны отображаться, кроме случаев, когда вы решите сделать их операциями одного класса.
Вот как понимать требования:
- R1. Классы
GroceryList
, Item
и User
. Ассоциация между 0..n GroceryList
и 0..n Item
. Ассоциативный класс со свойством Quantity
- R2. Класс
ItemType
- R3. Ассоциация между 0..n
Item
и 1 ItemType
. Оба класса имеют свойство Name
- R10. Ассоциация между 1
User
и 0..n GroceryList
. GroceryList
имеет свойство Name
- Предположение:
User
имеет свойство Name
Если ваш учитель никогда не говорил вам, что такое класс ассоциации, используйте вместо этого класс ListItem
, с ассоциацией 0..n ListItems
с 1 Item
и ссылкой на копирование от GroceryList
до ListItem
Удалите все остальные поля на диаграмме, потому что это либо поведение, либо дубликат существующего класса.
Для операций мне неясно, потому что это зависит от архитектуры вашего приложения (например, будете ли вы использовать классы репозитория?).