リポジトリパターンを使用してn層アーキテクチャを作成したいと考えています。私は、BLLレイヤーを介してすべての呼び出しを複製し、BLL経由でデータにアクセスするのは理にかなっていますか?あるいは、私はDALを通じていくつかのものにアクセスし、BLLを通じていくつかのものに直接アクセスすることはできますか?BLLを使用してもDALにアクセスする必要がありますか?
1
A
答えて
1
IMOのために複製するのは意味がありません。
(本当にすべてのアプローチは、その長所と短所を持っているのに、何もそれ自体が常に間違っているか、良いではありません)
通常例えばとデータ層のお得な情報テーブルに一致する(簡体字)ビット「造粒する」データかかわらず、正確になど
あなたのビジネスレイヤはそれを組み合わせることができますが、「論理」と論理モデル(データモデルとデータ)を中心にしています。
あなたが自分のビーズ層にDALの正確なレプリカを持っていることが分かった場合は、ポイントソートが欠けている可能性が最も高いです。いくつかのことは、再編成、捨てる、または単純化する必要があるかもしれません。
あなたに次のように尋ねてください。 DALを別の種類のストレージ(データ/ DALの動作方法を変更する必要があるものや組織の異なる構成)で作業する - BLLはどのように見えますか?同じ?あなたのビジネス層は「データに従う」べきではありません。それは独自のルールを持っているべきです。データはデータに関するものでなければなりません。
あなたがシステムをどのように設計するかは、ビジネス層をうまく活用すれば(比較的単純でないか、まったく異なるアーキテクチャを決定するなどしない限り)そうでなければ、複製する必要はありません。
これが役に立ちます。
関連する問題
- 1. Javascriptを使用してsqliteデータベースにアクセスする必要があります
- 2. BLLとDALが通信する必要がどのように、すべての方法は、トラブル
- 3. VB.NET SQLストアドプロシージャを使用した情報DAL BLL
- 4. Grails Spring Security Pluginを使用してアクションにアクセスする前にログインする必要がありますか?
- 5. Google App Engine Go - OpenIDを使用して、私もcaptchaを使用する必要がありますか?
- 6. オンラインゲームにTCPを使用する必要がありますか?
- 7. MVVMにDataTemplatesを使用する必要がありますか?
- 8. ネットワークデータにアクセスする方法としてサービスを使用する必要がありますか?
- 9. どこでもNSIntegerを使用する必要がありますか?
- 10. BLLは絶対に必要ですか?
- 11. サービス層はHttpContextにアクセスする必要がありますか?
- 12. @synthesizeをまだ使用する必要がありますか?
- 13. TryGetValueを使用して.net辞書にアクセスする必要がありますか?
- 14. Objective Cでドット表記を使用して構造値にアクセスする必要がありますか?
- 15. 外部キーにも使用されるマップテーブルにコンポジットキーを使用する必要がありますか?
- 16. SQLiteDatabaseを使用してデータを保存する必要がありますか?
- 17. Fragmentsを使用してLoaderManagerを取得する必要がありますか?
- 18. DALでUnit of Workパターンを使用していますが、Application_Startでデータアクセスを実行する必要があります。私は何をすべきか?
- 19. InitCommonControlsEx()とInitCommonControls()を使用する必要がありますか?
- 20. はcaptchaを使用する必要がありますか?
- 21. ディスパッチブロックで「weakSelf」を使用する必要がありますか?
- 22. 私はフォームタグを使用する必要がありますか?
- 23. xlibの "XAllocSizeHints()"を使用する必要がありますか?
- 24. ブートストラップを使用する必要がありますか?
- 25. Rails 3.1:CoffeeScriptを使用する必要がありますか?
- 26. コンテンツプロバイダを使用する必要がありますか?
- 27. ライブチャット - 何を使用する必要がありますか?
- 28. アクセサーを使用する必要がありますか?
- 29. タイプコードのインターフェイスを使用する必要がありますか?
- 30. コードカバレッジツールを使用する必要がありますか?
私は個人的に私のblalを通して私のdalにアクセスし、コールを複製します。あなたはビジネスロジックを追加する必要があるかもしれませんが、bllに新しい呼び出しを追加するのではなく、bllの呼び出しを変更する方がずっと簡単です。 –
"データのみの呼び出し"はどのように定義しますか?なぜあなたはBLの "複製を呼び出す"と感じていますか?どのような技術をプログラミングしていますか(Winforms、Webforms、MVC ...?) –