0

私は自分のアプリケーションで次のようにコーディングしています:

public class ContentController : ApiController
{
    private IUow _uow;
    private IContentService _contentService;

    public ContentController(
        IUow uow,
        IContentService contentService)
    {
        _uow = uow;
        _contentService = contentService;
    }

その後:

    container.RegisterType<IContentService, ContentService>();

私がこのように始めたのは、すべてのインターフェイスを使用してテスト可能にし、Unity などを使用して簡単に変更できるようにする方法を読み続けたからです。

しかし、1 年以上経った今でも何も変更する必要はなく、別のサービスを必要とせずに他の方法でアプリケーションをテストできます。

小さなアプリケーション (< 20 コントローラー) の場合、Unity などを使用する利点はあります。パフォーマンスにいかがでしょうか。それは何かを改善しますか、それとも単に問題を複雑にしますか.

4

1 に答える 1

1

小さなアプリケーション (< 20 コントローラー) の場合、Unity などを使用する利点はあります。

はい、より弱く結合されたコードを書くようになるからです。

パフォーマンスにいかがでしょうか。それは何かを改善しますか、それとも単に問題を複雑にしますか.

いいえ、パフォーマンスは向上しません。

さまざまなサービスを必要とせずに、他の方法でアプリケーションをテストできます。

アプリケーションの異なるレイヤー間の結合を弱めるためにインターフェイスを使用しない場合でも、アプリケーションの単体テストを行っていると思い込まないでください。あなたがしているのは統合テストですが、これも必要ですが、別の目的に役立ちます。

Unity などの DI フレームワークを使用しているかどうかは重要ではありません。わずか数行のコードで、独自の DI を簡単に作成できます。重要なのは、インターフェイスに対してプログラミングすることです。

于 2013-10-21T06:20:53.413 に答える