web-dev-qa-db-ja.com

これは高結合ですか?

質問






問題



前もって感謝します。

2
Bono

いいえ、高結合ではありません。別のクラス内でライブラリクラスを使用するだけです。

もちろん、それは依存関係であるため、結合です。クラス間に直接の依存関係が多すぎて、コードをリサイクルする機能が失われると、高結合が発生します。たとえば、Log( String )という1つのメソッドしかないLogWriterクラスがある場合、ファイル書き込みクラスなど、ログを出力するために特定のクラスを使用できます。

LogWriterクラスを他の出力モードで再利用できないため、上記は高結合になります。 LogWriterクラスの仕事は、ログ行を作成して出力することであり、特にファイルシステムにログを記録することではありません。

その場合は、コンストラクターの依存関係をinject渡すことで、より適切になります。ストリームを格納および再利用してログを出力するLogWriter( OutputStream )コンストラクターがあります。

もう1つの可能な方法は、構成ファイルを読み取り、リフレクションを使用してそのファイルからクラスを構成することです。

5
Sklivvz