複雑な計算を実行する必要があります。私の場合、(戦略パターンを使用して抽象化された) Calculator クラスを作成するのが最も自然に思えました。
計算を実行するには、クラスは約 20 の入力を受け入れる必要があります。そのうちのいくつかはオプションであり、将来変更される可能性があるものもあります。Calculate()メソッドが呼び出されると、約 20 の異なる変数を出力する必要があります。
これを実現する方法はいくつかあります。
- 計算メソッドにパラメーターとして渡される入力
- Calculator のプロパティを介して渡される入力
- 入力は独自のクラスにまとめられ、Calculate() メソッドに渡されます。
- クラスにラップされた Calculate() によって返される出力
- Calculate() メソッドに渡されるパラメーターに入力される出力
- Calculate() が呼び出された後に、Calculator のパブリック プロパティから取得された出力
これらすべての方法には長所と短所があります。どのようにしますか?
更新: フィードバックをお寄せいただきありがとうございます。
この計算機の目的は、見積もりを作成することです。入力には、顧客の住所、金利、目標利益、追加料金、製品 ID などがあります。出力には、見積もり、実際の利益、その他の料金などが含まれます。
ICalculateInput および ICalculateOutput インターフェイスとそれらの具象クラスを作成したところ、システムは非常にうまく機能するようになりました。Calculator クラスは、ICalculator インターフェイスからも継承します (関連する計算は、製品の供給元の会社によって大きく異なるため)。