依存性注入の IOC/DI について読みました。注入したいすべてのクラスのインターフェースを作成するように指示されています。インターフェースの定義(クラスで振る舞いを強制したい実装)に違反していませんか?どんな助けでも大歓迎です。ありがとう。
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   に答える