【发布时间】:2008-12-08 22:24:46
【问题描述】:
我需要进行复杂的计算。在我的例子中,创建一个 Calculator 类(使用策略模式抽象)似乎是最自然的。
要执行计算,该类需要接受大约 20 个输入,其中一些是可选的,其中一些可能会在未来发生变化等。一旦调用 Calculate() 方法,大约有 20 个需要输出不同的变量。
有很多方法可以实现。
- 作为参数传入计算方法的输入
- 通过计算器属性传入的输入
- 输入封装到自己的类中,然后传递给Calculate() 方法。
- Calculate() 返回的输出,封装在一个类中
- 填充到传递给 Calculate() 方法的参数中的输出
- 在调用 Calculate() 之后从计算器的公共属性中检索到的输出
所有这些方法都有利有弊。 你会怎么做?
更新: 感谢您的反馈。
此计算器的目的是生成报价。输入是客户地址、利率、目标利润、附加费用、产品 ID 等内容,输出包括报价、实际利润、更多费用等。
我已经创建了 ICalculateInput 和 ICalculateOutput 接口及其具体类,现在系统运行良好。 Calculator 类还继承自 ICalculator 接口(因为所涉及的计算因产品来源公司的不同而有很大差异)。
【问题讨论】:
标签: parameters oop