Was sind die guten Möglichkeiten, mit komplizierter Geschäftslogik umzugehen, die auf den ersten Blick viele verschachtelte if-Anweisungen erfordert?Wie vereinfacht man komplizierte Business "IF" Logik?
Beispiel:
Rabatt-Coupon. sein könnte:
1a) Wert Rabatt
1b) Prozentualer Rabatt
2a) Normal Rabatt
2b) Progressive Rabatt
3a) Zugang Coupon
3b) Benötigen Sie benötigen keinen Zugriff Coupon
4a) Wird nur auf den Kunden angewendet, der bereits zuvor
gekauft hat 4b) Angelegt auf einen beliebigen Kunden
5a Kunde nur aus Ländern (X, Y Angewandte), ...)
Dieser Code noch komplizierter erfordert dann das:
if (discount.isPercentage) {
if (discount.isNormal) {
if (discount.requiresAccessCoupon) {
} else {
}
} else if (discount.isProgressive) {
if (discount.requiresAccessCoupon) {
} else {
}
}
} else if (discount.isValue) {
if (discount.isNormal) {
if (discount.requiresAccessCoupon) {
} else {
}
} else if (discount.isProgressive) {
if (discount.requiresAccessCoupon) {
} else {
}
}
} else if (discount.isXXX) {
if (discount.isNormal) {
} else if (discount.isProgressive) {
}
}
Auch wenn Sie IFs ersetzen zu wechseln/Fall ist es immer noch zu kompliziert. Was sind die Wege, um es lesbar, wartbar, testbarer und leicht zu verstehen?
Es ist nicht verschiedene Rabattklassen. Es ist eine Rabattklasse mit all diesen 1-5 Dingen als mögliche Eigenschaften. – Zelid
Ich schlage vor, dass Sie das ändern, so dass Sie mehrere Rabattklassen haben. –
Ok, wie soll man dann angeben, dass der Rabatt gleich 1a, 2b, 3a, 4b sein soll? – Zelid