关于一个概预算软件的设计,征求一个计费的设计模式!!!!!!!!!
本人现准备做一个概预算软件的设计,其中设计到计费的问题,在软件中,新建一个工程的输入界面中,有很多项checkbox选择(上百项),每一个选项都会造成最终工程计费的费率的改变,然后最后工程统计计费的时候,根据这些选项对(比如材料费,人工费)各个项目进行计费的计算,最后统计,打印报表。
为了说明得更清楚,我举个例子来说吧,比如这项工程中有材料费(200)、人工费(100)这两个费用 ,在新建工程的输入界面的时候,材料费的选项上面,有80%和90%这两个选项可选(假设选中90%),人工费上有90%和95%可选(假设选中95%),那么在最后计费时,计算结果如下:200×90%+100×95%。当然我只是一个非常简单的例子,实际方面会有非常多的费用参与运算,而且在新建完工程后,在详细输入各项费用的时候,还可以再返回到这个选项输入界面来修改这一系列的费率。
最初考虑用策略模式,可是策略模式只是针对一系列已知的算法,但是我的情况是上百种选项的算法的累加,如果不考虑用设计模式的话,会带来上百个if语句的代价,很混乱,各位能给我一些参考意见吗?我可以用哪些模式来解决这个问题。
[解决办法]
设计一个费用数据结构 状态,费用,百分比
然后设计一个Vector来保存这些数据
计算和的时候,只需要遍历一次vector就可以了.
不明白为何要要采用什么设计模式。
[解决办法]
不需要设计模式,不要总想着和设计模式靠,你可以将计费公式抽象成几种类型,比如百分比类型就是其中一个,然后,每一个项目都有上百个计费对象,每个对象隶属于一种计费类型,比如百分比类型有基数和百分比两个成员。
这里不能画UML图,如果你需要,可以和我联系,咱们沟通沟通。
QQ:59684103
MSN: canphie@sohu.com