web-dev-qa-db-ja.com

依存性注入の反対を表す専門用語?

これは、純粋に技術的な質問というよりは、専門用語(テクニカルライティング)です。アプリケーションでの依存性注入の拡張を中心に、リファクタリングの提案を書いて(そして自分に割り当てられるように)しようとしています。 Beanの自動配線にSpringを使用していますが、MyClass obj = new MyClass(...)を使用してBeanをインスタンス化するインスタンスがまだあります。私の提案にエレガントな命名法を使用し、適切な用語でDIの反対のデザインパターンを参照したいと思います。

「密結合」は、DIの反意語として立つ適切な用語ですか?

12
amphibient

いいえ。緊密な結合は、依存性注入が処理する以上のものです。

依存性注入は、実装の決定を外部化します。これは分離に長い道のりですが、結合はこれ以上のものです。

依存関係注入のよい反意語は依存関係のハードコーディングです。ビヘイビアーオブジェクト内で構築(新規を使用するか、いくつかのファクトリーを直接使用する)すると、2つの異なる懸念事項が混同されます。サービスロケーターは分離に役立ちますが、サービスロケーター自体との結合は維持されます。

結合は、構造と動作を分離するだけではありません。クラスAからクラスBへの特定の順序で呼び出す必要がある101個のメソッドがある場合、緊密に結合されています。構造と動作の分離がどれほど素晴らしいかは関係ありません。

カップリングは、2つのオブジェクトの相互依存性の尺度です。一方を変更することを他方に影響を与えることなく困難にすることに寄与するものはすべて、結合に寄与します。依存性注入はこれに役立ちますが、これだけではありません。

30
candied_orange

特定の広く受け入れられている業界用語があるかどうかはわかりませんが、頭に浮かぶ代替案には、内部インスタンスの作成内部依存関係の作成ローカル依存関係、またはローカルスコープの依存関係

2
mcknz

依存性カプセル化を使用します。これは、依存関係が再び訪れて去るのではなく、閉じ込められることを表しています。

1
Martin Maat