2014-06-20 120 views
-1

我有一个最佳的practive /设计模式问题。我正在调度系统,我需要计算一个价格。计算价格的设计模式建议

在系统设置中,管理员可以管理8种不同的费率规则。有最低费用,停车费,收费,...。

每条规则都可以被激活和停用,每条规则都有其自己的参数,例如 ,例如规则'停车'有'价格','增值税','每小时价格或固定价格'等参数。

我正在考虑使用战略模式或桥梁模式,但两者都不适合我认为。

另一种解决方案是简单的继承而不使用接口。

我已经为蓝本的东西,但我不是100%满意,结果是:

https://www.dropbox.com/s/jllb8h0671ssq8u/RateRule-Pattern.png

回答

0

声音对我来说非常合理... 无论模式你怎么称呼它,我看到了在您的想法中有很多意义 - ParkingCalculator,TollCalculator等的集合,具有通用接口。这使得添加更多类型的付款很容易,如果他们一路飙升,它可以让您替换一些部分(例如不同的停车政策)。如果后者发生,那么它确实属于“战略”的经典定义。

我个人也想隐瞒这一切的背后“calculateTotal”的更高级别的界面 - 当前实施是“通过计算器的集合迭代”,但系统的其余部分不应该介意,如果这更改(例如,如果规则变得如此复杂以至于需要树,或由交通部对某些外部服务进行REST调用)。