私は手作業のコンストラクタインジェクションDIを少し使っています。私が気づくことの1つは、私のコンストラクタがかなり長くなることです。コンストラクタインジェクション:依存関係の数が多すぎますか?
私は小さなオブジェクトの束に依存するクラスを持っています - 時には6と10の間のどこか。私のアプリケーションを小さな塊に分割し続けていくと、この数は時間の経過とともに増加しています。これは共通の問題ですか?
明らかに、これはプロジェクトに大きく依存することになります。しかし、基本的な質問は次のとおりです。
いつクラスに含まれる依存関係の数に不快感を持ち始めますか?これらの依存関係を減らすために使用する戦略は何ですか?
WWのような複数のクラスにそれらをグループ化する論理的な方法が見つからない場合はどうなりますか?言った?多くの依存関係を持っていることに同意しますか? BMW、OPEL、VWなどの車のブランドが依存関係だと言うことができます。彼らはすべての車です。多分ベストな例ではないかもしれませんが、あなたがそのアイデアを得ることを願っています。 –
@ Darius.V - 50種類のブランド依存性を持つ 'Cars'クラスをお持ちの場合、明らかにSRPに違反しています。あなたのトップレベルの 'Cars'クラスは、それぞれ共通のプロパティとメソッドを持ついくつかの依存関係しか持たないように、それらを共通の特性(つまり、' ElectricCars'、 'HybridCars'、' DieselCars'、 'GasolineCars')にグループ化する必要があります。その下に、[戦略パターン](https://stackoverflow.com/a/31971691)を使用して、複数の類似自動車を単一の依存関係に単純化することができます(たとえば、あなたの車に注入される単一の「GasolineCarsStrategy」すべてのガソリン車を管理するクラス)。 – NightOwl888