1

これは初心者の質問です。実行時に構成を通じてインターフェイスのオブジェクトを解決するためにDIを使用しています。

<unity>
  <containers>
    <container>
      <types>
        <type
          type="BusinessLayer.IBAL, BusinessLayer, Version=1.0.0.0, Culture=neutral"
          mapTo="BusinessLayer.BAL, BusinessLayer, Version=1.0.0.0, Culture=neutral" />
        <type
          type="DataAccessLayer.IDAL, DataAccessLayer"
          mapTo="DataAccessLayer.DAL, DataAccessLayer, Version=1.0.0.0, Culture=neutral" />
        <type
          type="DataAccessLayer.IDbContext, DataAccessLayer, Version=1.0.0.0, Culture=neutral"
          mapTo="DataAccessLayer.DbContext, DataAccessLayer, Version=1.0.0.0, Culture=neutral" />
      </types>
    </container>
  </containers>
</unity>

ここで、上記の構成は UI レイヤーの web.config にあります。

UI レイヤー web.config で作成する DAL インスタンスを指定することは、レイヤー分離の概念に反しますか?

すべてのレイヤーは独立している必要があるため、DAL、BAL の依存関係が UI レイヤーの web.config に記載されている場合、分離の原則に違反しますか?

4

1 に答える 1

4

どこかでコンテナをブートストラップする必要があります。通常、どこかがメインの Web プロジェクトである Web アプリケーション。n 層アーキテクチャを使用している場合、(できれば) UI から直接 DAL クラスを使用するのではなく、BL クラスから使用しています。

web.config で DAL クラスを参照するだけでは、レイヤード アーキテクチャに違反しません。

詳細な説明については、コンポジション ルートの概念に関するこの投稿をお読みください。

于 2012-08-15T07:53:30.947 に答える