相关疑难解决方法(0)

27
推荐指数
4
解决办法
1万
查看次数

如何简化复杂的业务"IF"逻辑?

处理复杂业务逻辑的好方法是什么,从一开始就需要许多嵌套的if语句?

例:

优惠券.可能:

1a)价值折扣
1b)百分比折扣

2a)正常折扣
2b)累进折扣

3a)需要访问优惠券
3b)不需要访问优惠券

4a)仅适用于已经购买的客户
4b)适用于任何客户

5a)仅从国家(X,Y,...)应用于客户

这要求代码更复杂,然后:

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) { …
Run Code Online (Sandbox Code Playgroud)

refactoring business-logic

14
推荐指数
3
解决办法
2500
查看次数

标签 统计

business-logic ×1

c# ×1

enums ×1

java ×1

refactoring ×1