Ich entwickle eine Preisberechnungs-Engine. Ich habe überall nachgesehen und es gibt nichts, was wirklich passt, was wir brauchen. Jetzt suche ich jedoch, wie man spezifische Preise und / oder Rabatte einführt. Ich möchte meinen Endbenutzern keine regelbasierte Engine vorstellen, da sie diese nicht erhalten.
Wenn Sie beispielsweise ein ItemX bestellen, beträgt der Preis 30 €. Aber in Kombination mit ItemY beträgt der Preis von ItemX $ 20. Oder wenn Sie fünf von ItemX bestellen, dann werden es jeweils nur 15 $ sein.
Haben Sie Ideen, wo Sie anfangen sollen? Wie nehme ich das an? Vielleicht einige (Open Source) Beispielanwendungen, die solche Praktiken enthalten? Irgendwelche (technischen) Muster könnte ich verwenden? Vorzugsweise in C #. Vielen Dank im Voraus!
Beschäftigt sich mit einer ähnlichen Situation und finde das Decorator-Muster als eine gute Option.
Check out: Ссылка
Prost
Überprüfen Sie auch, ob es sich um ein stratartiges Muster handelt, das ich für die Implementierung von Rabatten verwende: Rabatt-Strategie in Einkaufswagen und Bestellungen
Es gibt viele Möglichkeiten, dies zu erreichen, aber ich denke, diejenige, die für Sie am nützlichsten ist, würde eine DSL definieren, mit der Sie Ihre Rabatte so ausdrücken können, dass sie leicht erklärt und rationalisiert werden können mit Geschäftsnutzern. Ein Beispiel aus einem der Artikel von ayende über DSLs in boo ist:
%Vor%Wie Sie sehen, können Sie sehen, dass Sie so etwas ausdrucken und einem Kunden zeigen können. Sie werden sofort verstehen, was vor sich geht.
Natürlich ist die Entwicklung von so etwas zeitaufwendig, teuer und voll von funkigen Edge Cases. Es hat jedoch den Vorteil, Code zu sein, der getestet, ausgeführt und debuggt werden kann.
Wenn boo nicht dein Ding ist, dann könntest du vielleicht etwas ähnliches in Ironruby, Ironpython oder F # definieren. Ich würde jedoch vorschlagen, von XML weg zu bleiben, um diese Regeln zu definieren, es sei denn, Sie genießen wirklich eine Welt der Schmerzen.
Dies ist jedoch die Art von Dingen, für die Produkte wie Biztalk entwickelt wurden. Welche Regelwerke haben Sie evaluiert und gefunden, die fehlen?
Wir verwenden eine Rule Engine für diese Art komplexer Berechnungen. Unsere Plattform ist Java und wir benutzen Drools (mit denen wir zufrieden sind). Drools ist auch für .Net verfügbar. Hier ist eine Liste von Open-Source Regel-Engines für .NET .
Es tut mir leid, dass ich das sagen muss, aber es scheint, als müssten Sie eine Preisfindungsregel anwenden, um zu erreichen, was Sie suchen .
Es sieht so aus, als müssten Sie
Im Allgemeinen gibt es viele mögliche Regeln / Kombinationen, an die gedacht werden kann, und Sie als Entwickler können diese implementieren und sie vor dem Benutzer verbergen oder dem Benutzer erlauben, sie zu erstellen, aber jemand muss es tun so .
Und dann, wenn Sie nicht Lust haben, Ihre eigenen zu implementieren, bietet GOOGLE einige:
Tags und Links c# design-patterns