大規模なクラス(2000+行)をより小さい凝集クラス(約200行)にリファクタリングすることで、Javaコードに単一責任原則を統合しようとしています。しかし、の特定のクラスは、new
キーワードで複数の "ハード依存関係"を作成するように見えるので、クラス間の結合を適切に減らす方法が混乱しています。適切なクラス構成:複数のハード依存関係を使用
Iは、パラメータとして、依存関係を受け入れ、それが(メソッド本体内の他のロジックをamonstない単純なthis.val = val;
セッター使用セッターメソッド、または方法に続いて、主コンストラクタを介して依存性注入を使用している。
IntelliJの自動リファクタリングは、この新しく抽出されたクラスをインスタンス化し、this
の参照をLoadControllerに渡します(注入する)。私が2000ラインクラスをリファクタリングする必要がある場合、もちろん、この自動インスタンス化+次のLoadControllerは、さまざまな機能の開始点として機能する、プログラムのメインステージ用のJavaFXコントローラクラスです。
public class LoadController{
private final DBConnection dbConnection = new DBConnection(this);
private final UpdateLabels updateLabels = new UpdateLabels(this);
private final OpenCloseMenu openCloseMenu= new OpenCloseMenu (this);
private final CreateVBox createVBox= new CreateVBox (this, dbConnection);
private final ...
private final ...
}
これは間違っていますか?私の理解では、大きな独立した関数はそれぞれのクラスになければなりません...しかし、いくつかのクラスは、他のさまざまなクラスの使用の間のロジックの流れを「ガイド」するために、上記のような複数のハード依存関係を持たなければなりません。
おかげjewelsea、あなたは私が注入フレームワークを使用すると、私の要件については不必要であると判断した場合は、その後、私はことを言っているように、* *本質的に何もしていません上に示したように、いくつかのクラスに複数のハード依存関係があると正しくありませんか?私の前提は、大規模なクラスを、より小さい一貫性のあるクラスにリファクタリングすることができるということです。注入フレームワークは、まだ必要とされていない早期ではなく、プロジェクトの生涯の後半で統合することができますか? – Mathomatic