Могу ли я добавить функции addtocart (), removefromcart (), createorder (), executeorder () в класс пользователя? - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь создать приложение для интернет-магазина, и это моя диаграмма классов class diagram uploaded to https://i.stack.imgur.com/qGhLz.png

Я дал обязанности и функциональность своим классам, но для меня не очевидно, какПользователь класса будет взаимодействовать с порядком и классом корзины.это нормально, например, добавить функции addtocart (), removefromcart (), createorder (), executeorder () и т. д., в пользовательский класс ???Проблема для меня заключается в том, что эти функции не имеют отношения к обязанностям пользовательского класса, но с другой стороны, между ними существует композиционная связь, и в некоторых случаях пользовательский класс должен использовать корзину и класс заказов.Заранее спасибо.

1 Ответ

0 голосов
/ 28 сентября 2018

Вам нужно разбить этот дизайн на подсистемы: управление клиентами, выставление счетов, каталог, заказ, оплата и покупки.

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

В итоге вы можете получить классы, которые похожи в разных подсистемах (например, «клиент» в управлении клиентами и в порядке), новам также нужно учитывать, что классы играют разные роли в этих разных контекстах.

Я не большой поклонник DDD, но это простое введение в разделение приложений.

...