依存性注入の IOC/DI について読みました。注入したいすべてのクラスのインターフェースを作成するように指示されています。インターフェースの定義(クラスで振る舞いを強制したい実装)に違反していませんか?どんな助けでも大歓迎です。ありがとう。
質問する
91 次
2 に答える
2
混乱の主なポイントは、DI/IoC シナリオでは、注入したいクラスがなく、注入したいサービスがあることだと思います。Logger
クラスがあるとしましょう。Logger
挿入したいのはクラスそのものではなく、ILogger
インターフェースによって記述されたロギング サービスのセットです。DI や IoC を使用していなければ、各クラスにILogger _logger = new Logger()
、またはおそらくに行く場所がILogger _logger = Logger.Instance
あり、どちらも自分のコードをインターフェイスの特定のインスタンスに結合しILogger
ます。しかし、DI/IoC では、このステップをフレームワークに任せ、ビジネス ロジック クラスの特定の実装に煩わされることはありません。
于 2012-04-23T05:55:31.937 に答える
1
インターフェースの定義(クラス内で振る舞いを強制したい箇所の実装)に違反していませんか?
いいえ、そうではありません。
インターフェイスを作成しているという単なる事実は、動作を定義していることを意味します。実装に到達するために DI を使用するかどうかは、それほど重要ではありません。
于 2012-04-23T05:54:18.627 に答える