序文
DI フレームワークを使用すると、自分自身を撃つ可能性が現実にあるように感じます。
(私の選択したフレームワークは ninject なので、例ではそれを使用します。)
少し戻って、DIフレームワークが存在する理由を見てみましょう。
手動で DI を行う必要がないようにするには
そうです、Ninjects ドキュメントの精神で、 sDojo
を作成する a があるとしましょうSamurai
。これらSamurai
の は、作成時に が与えられIWeapon
ます。
class Samurai{
readonly IWeapon weapon;
public Samurai(IWeapon weapon){
this.weapon = weapon;
}
}
が を作成するときに をDojo
使用することを理解しています。Kernel.Get<IWeapon>()
Samurai
おっと
、Dojo をカーネルに結合しただけではありませんか?
また...カーネルを取得するにはどうすればよいですか: DI、シングルトン、サービスの場所?
DI フレームワークに依存しているため、DI の目的をすぐに打ち負かしたような気がします。忍者が倒されて忍者も死ぬとどうなりますか?
質問
DI フレームワークに結合せずに DI を使用するにはどうすればよいですか?
ポストフェイス
この質問は以前に尋ねられたと確信していますが、何も見つかりませんでした。コメントを使用して関連する質問を投稿し、知識をプールして最適な解決策を見つけられるようにしてください。