Je développe un moteur de calcul de prix. J'ai regardé partout et il n'y a rien qui correspond vraiment à ce dont nous avons besoin. Cependant, je cherche maintenant à mettre en œuvre des prix et / ou des rabais spécifiques. Je ne veux pas introduire un moteur basé sur des règles à mes utilisateurs finaux, car ils ne l'obteniront pas. P>
Par exemple, lorsque vous commandez un itemx, le prix est de 30 $. Mais en combinaison avec l'article, le prix de l'itemx est de 20 $. Ou lors de la commande cinq de l'itemx, chacun après ce sera seulement 15 $. P>
Des idées sur où commencer? Comment prendre cela? Peut-être des exemples d'applications (open source) contenant des pratiques comme celles-ci? Des modèles (techniques) que je pourrais utiliser? De préférence en C #. Merci d'avance! P>
3 Réponses :
Je suis désolé de devoir dire cela, mais cela semblerait que vous devriez appliquer un moteur de règle de prix pour aller faire ce que vous êtes après p>. P>
semblerait comme si vous avez à p>
En général, il y a beaucoup de règles / combinaisons possibles pouvant être pensées, et vous pouvez les mettre en œuvre et les masquer de l'utilisateur, ou permettre à l'utilisateur de les créer, mais quelqu'un doit faire Donc em>. p>
Et puis, lorsque vous n'avez pas envie de mettre en œuvre votre propre, Google Shold fournit certains: p>
Il y a beaucoup de façons que vous pouvez y parvenir, mais je pense que celui qui pourrait être le plus utile pour vous serait de définir une DSL que vous pouvez utiliser pour exprimer vos réductions de manière à ce qu'ils puissent être facilement expliqués et rationalisés. avec des utilisateurs professionnels. Un exemple de l'un des AyENDEE sur DSLS à BOO est: < pré> xxx pré>
Comme vous pouvez le voir, vous pouvez voir, c'est le genre de chose que vous pouvez imprimer et montrer à un client et il comprendra immédiatement ce qui se passe. P>
de Bien sûr, développez quelque chose comme celui-ci prend du temps, coûteux et semés avec des cas de bord funky. Cependant, il bénéficie d'un code pouvant être testé unitaire, exécuté et débogué. P>
Si BOO n'est pas votre chose, vous pourriez peut-être regarder quelque chose de similaire dans ironRuby, IronPython ou F #. Je suggérerai cependant de rester loin de XML pour définir ces règles à moins que vous ne profitiez vraiment d'un monde de douleur. P>
C'est cependant le genre de chose que des produits comme BizTalk ont été conçus pour gérer. Les moteurs de règles avez-vous évalués et trouvés manquants? P> P>
Je pense que l'option DSL est la meilleure, je ne veux pas donner à mon client cela. Ils ne comprennent pas cela, feront des erreurs et je n'ai pas le temps de mettre en œuvre les exceptions, car il y aura beaucoup !!! Mais merci quand même, peut-être que je vais examiner quelque temps.
Nous utilisons un moteur de règles pour ce type de calcul complexe. Notre plate-forme est Java et nous utilisons des bourses (dont nous sommes satisfaits). Drools est également disponible pour .NET. Voici une liste d'open source Règles moteurs pour .NET . P>