Лучший способ спроектировать модель домена корзины покупок на C #?

#design-patterns #database-design #architecture #domain-driven-design #shopping-cart

#шаблоны проектирования #database-design #архитектура #domain-driven-design #корзина покупок

Вопрос:

Google не может мне помочь. Я нахожу только эту ссылку: http://flylib.com/books/en/2.522.1.56/1 /

Итак, как только возникает вопрос — зачем нам нужно разделять товар и товар?

Ответ №1:

Product слишком сложно использовать его на вашем Cart . Мы можем представить, что Product содержит данные о: производителе, количестве на складе, категориях и т. Д. Итак, лучший способ — ввести Item , который будет содержать только ссылку на реальный продукт (например, ProductID) и количество (и другие необходимые вам сведения).

Комментарии:

1. Действительно; чтобы расширить «Item», у вас могли бы быть PurchaseItem, CartItem, ProductReferenceItem — просто пища для размышлений.

2. Я думаю, что элемент содержит данные о конкретных атрибутах, таких как цвет, а также о производителе, количестве, поставщике, а продукт содержит категории, название, описание

3. Забавный факт, что я так много раз обсуждал эти термины со своими коллегами… и мы действительно пришли к выводу, что «Товар» в корзине может представлять что угодно — от ваучера до автомобиля. Итак, мы решили отойти от этой абстракции и фактически обсудить продукты / статьи, купоны и рекламные акции, но не товары. Если ваш домен рассматривает товары как продукт, тогда мне нужно задать этот вопрос, что касается розничной торговли, это не имеет смысла; в том же банке мы решаем использовать «токен», поскольку он может представлять любой доступный способ идентификации и ничего конкретного.

Ответ №2:

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

Конечно, вы можете черпать вдохновение из того, что найдете, но не ожидайте, что это будет соответствовать вашим спецификациям.

Комментарии:

1. Спасибо, но я не нашел примеров для вдохновения.