Поиск шаблонов/лучших практик для вычисления сложных [закрытых] скидок

8
задан admdrew 30 September 2014 в 15:12
поделиться

4 ответа

Занят, глядя на похожую ситуацию и считаю, что шаблон декоратора - хороший вариант.

http://www.dofactory.com/Patterns/PatternDecorator.aspx

Отъезд: http://www.itarchitect.co.uk/articles/display.asp?id=357

Ура

Также проверьте, нет ли шаблона типа страта, который я ищу для реализации скидок: Стратегия скидок в корзине и заказах

4
ответ дан 2 November 2019 в 23:07
поделиться

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

Похоже, что вы должны

  • хранить доступные предметы, и их Скидки по ценам.
  • Хранить какие товары в комбинации будут сбрасывать друг друга со счетов.
  • Также, возможно, подумать о том. единица товара/количество, купленное на единицу товара, или может быть, по упаковке/специальности.
  • Может, захочешь посмотреть на то. их архивирование/хранение спецпредложения/пакеты, просто раздавите заказчик хочет перепечатать оригинал счета-фактуры.

В общем, существует множество возможных правил/комбинаций, которые можно придумать, и вы, как разработчик, можете реализовать их и скрыть от пользователя, или позволить пользователю создать их, , но кто-то должен это сделать .

А потом, когда Вы не хотите реализовывать свои собственные, GOOGLE shold предоставляет:

Open Source Engines Rule

2
ответ дан 5 December 2019 в 18:59
поделиться

Мы используем механизм правил для этого типа сложных вычислений. Наша платформа - это Java, и мы используем Drools (чем мы довольны). Drools также доступен для .Net. Вот список Rules Engine с открытым исходным кодом для .NET .

3
ответ дан 5 December 2019 в 18:59
поделиться

Есть много способов добиться этого, но я думаю, что наиболее полезным для вас будет определение DSL, который вы можете использовать для выражения своих скидок в таких способ, которым их можно легко объяснить и рационализировать с бизнес-пользователями. Пример из одной из статей ayende о DSL в boo :

apply_discount_of 5.percent:
     when order.Total > 1000 and customer.IsPreferred
     when order.Total > 10000

suggest_registered_to_preferred:
     when order.Total  > 100 and not customer.IsPreferred

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

Конечно, разработка чего-то подобного отнимает много времени, дорого и чревата причудливыми крайними случаями. Однако у него есть преимущество в том, что это код, который можно тестировать, выполнять и отлаживать.

Если boo не для вас, то, возможно, вам стоит определить что-то подобное в ironruby, ironpython или F #. Однако я бы посоветовал держаться подальше от XML для определения этих правил, если вы действительно не наслаждаетесь миром боли.

Однако именно для этого были разработаны такие продукты, как Biztalk. Какие механизмы правил вы оценили и обнаружили, что у них нет?

4
ответ дан 5 December 2019 в 18:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: