私はオブジェクト指向デザインの問題に取り組んでいます。コードを提供するのではなく、混乱している部分に焦点を当てて、テキストで説明しようと思います。
TaxPolicyのリストを含むSalesPolicyというクラスがあります。TaxPolicyは、名前と税率を属性として持つ税政策を表す抽象クラスです。TaxPolicyには、acceptという抽象的なメソッドが含まれています。TaxPolicyの具体的な実装では、acceptメソッドを実装し、TaxPolicyをいつ適用できるかを決定するためのロジックを提供する必要があります。
SalesEngineという別のクラスがあります。SalesEngineにはSalesPolicyがあり、SalesPolicyはSalesEngineコンストラクターのパラメーターの1つです。SalesEngineは、acceptメソッドを呼び出して、SalesPolicyのTaxPolicyのリストからTaxPolicyをアイテムに適用できるかどうかを判断し、それに応じて税金を計算します。前に説明したように、SalesPolicyには、TaxPolicyのリストとリストに追加するメソッドである単一の属性が含まれています。
私が知る必要があるのは、SalesEngineクラスにSalesPolicyのようなパラメーターを設定してもよいかどうかです。テスト可能なコードの観点から、これはどのような影響を及ぼしますか?