0

以前の質問の続きとして、( https://stackoverflow.com/questions/3737848/creating-a-loosely-coupled-scalable-software-architectureを参照)

私の 3 層プロジェクトでプレゼンテーション層から BLL を抽象化したように、DAL も抽象化することを提案する人がいます。これを行う方法について何か提案はありますか? BLL と DAL の間にもファクトリが必要ですか? 私はあなたの入力が必要です..ありがとう。

4

1 に答える 1

2

興味深い - プレゼンテーション レイヤーに対して抽象化を行う前に、BL と DAL の間に抽象化を配置します。

他の質問で使用されているアプローチは合理的だと思われます-それを再利用してみませんか?

  • はい、工場が必要です。ただし、これを共通のクラス/アセンブリに含めて、objectを返すだけにすることができます。これは、返されたときにキャストできます。つまり、BL 内で呼び出されているポイントでキャストできます。
  • (完全を期すために: Activator.CreateInstance())(他の質問で使用したように)使用するのが正しい方法です。
  • DAL の場合、config に格納されている値を (ファクトリに渡す引数として) 使用する傾向があります。DAL の実装を頻繁に変更することは一般的ではないため、構成は私にとってはうまく機能します。
  • BL と DAL の間のコントラクト/抽象化を設計するときは、Interface Segregation Principle (ISP) を順守してください。これを正しく行えば、さまざまな物理 DAL 実装を一度に組み合わせることができます。
  • DTO とファクトリを共通のアセンブリ (おそらく同じもの) に保持すると、BL とさまざまなDAL実装でそれらを簡単に再利用できます。これを行うと、システム全体を再コンパイルおよび再デプロイすることなく、DAL 実装を追加/更新できるようになります。
于 2010-09-19T21:43:54.443 に答える