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