リポジトリ パターンを使用して n 層アーキテクチャを作成したいと考えています。BLLレイヤーを介してすべての呼び出しを複製し、BLLを介してデータのみの呼び出しにアクセスすることは理にかなっていますか? または、DAL を介して直接アクセスできるものと、BLL を介して直接アクセスできるものがありますか?
1 に答える
IMO ためだけに複製するのは意味がありません。
(実際にはすべてのアプローチには長所と短所がありますが、それ自体が常に間違っているわけでも良いわけでもありません)
通常、データレイヤーは、たとえば(単純化された)テーブルと正確に一致する少し「粒状化された」データなどを扱います。
ビジネスレイヤーはそれを組み合わせることができ、「ロジック」と論理モデル(次にデータモデルとデータ)を中心にしています。
ビジネスレイヤーに DAL の正確なレプリカがあることに気付いた場合は、おそらくポイントのようなものを見逃している可能性があります。いくつかのことは、再編成、破棄、または単純化する必要がある場合があります。
または、たとえば、次のように自問してください-たとえば、DALを別のタイプのストレージ(さまざまな組織、またはデータ/ DALの動作方法を変更する必要があるもの)で動作するように置き換えたい場合-BLLはどのように見えますか? ? 同じ?ビジネス層は「データに従う」べきではありません。ドメインのロジック、何をしているかについて、独自のルールを持つ必要があります。データはデータに関するものであるべきですが。
したがって、要するに、問題は主にシステムをどのように設計するかです-ビジネスレイヤーをうまく利用する場合(そして、それが比較的単純であるか、たとえばまったく異なるアーキテクチャを決定しない限り、通常はそうすべきです)、そうでない場合はそれを使用します複製する必要があります。
お役に立てれば。