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