比較的大きなオブジェクト指向プログラムを構築しています。私はAerodynamicCalculator
というクラスを持っています。このクラスは数多くの計算を行い、結果をシステムに分配します。私の主な関心事は、私はそれにmorパラメータを追加すると、私のコンストラクタシグネチャがますます大きくなるということです。オブジェクト参照がコンストラクタを経由して渡される
以下に示すように、私は既にこのコンストラクタに9つのオブジェクト参照が渡されていますが、さらに7つ必要です。このオブジェクトを正しく作成していますか?私の理解は、コンストラクタに関連付けられたオブジェクト参照を渡し、オブジェクトの参照にclass'esローカル変数を割り当てることです。この場合、必要なすべてのオブジェクトでクラスを適切に初期化する唯一の方法は、それらをコンストラクタに渡すことです(非常に長い署名につながります)。
public AreodynamicCalculator(AircraftConfiguration config, AileronOne aOne,
AileronTwo aTwo, ElevatorOne eOne, ElevatorTwo eTwo, Rudder r,
Rudder rr, RateGyros rG) {
// ...
}
このアプローチに関するアドバイスは、事前に感謝の意を表します。
さまざまな戦略が提案され、あなたが行く最善の方法かもしれません。しかし、これは、あなたのクラスがあまりにも多くをやろうとしているし、より小さな部分に分割する必要があるというサインである可能性があります。 –
これは禁止されていません。これがその1つの方法です。他の方法もありますが、最終的にはシステムの特定のアーキテクチャーに至り、システムを作成する最善の方法を教えてくれるでしょう。この質問はおそらく広すぎるため閉鎖されるでしょう。 – Th0rndike
このクラスは実際には5つの変数しか計算しませんが、これらの変数を7つのオブジェクトに分散する必要があります。どのように計算で使用される変数は、私は私の元の投稿で示したオブジェクトから抽出されます。だから、クラスdosntはゲッター、システム計算機、計算結果配布者としての役割を果たします。 –