私は、n 層アーキテクチャ (DAL、BLL、UI) の基礎を学ぼうとしている、かなりの新人プログラマーです。私がプログラミングしているアプリケーションは、VB.NET (.Net 3.5) で記述された単一層の 3 層アプリケーションです。レイヤーは次のとおりです。
ダル
BLL
UI
COMMON - 現在、DTO が含まれています。
BLL と UI の間で何を渡すかを判断するのに苦労しています。私の本能は、BLL からの完全なビジネス オブジェクトではなく、データのみを UI に渡す必要があることを教えてくれます。次の 2 つのシナリオを検討してください。
1) BO を BLL から UI に直接渡します。これにより、BO メソッドが公開され、UI が BO に直接アクセスできるようになりますが、これは良くないようです。
2) 関連するデータのみを BO から UI に渡します。たとえば、顧客には名前と住所があります。このデータは実際に UI で表示/編集したいものであるため、完全な BO ではなく、そのデータのみを UI に返します。次に、UI は BLL を呼び出して、特定の BO を更新します。
#2を使用する傾向がありますが、それを実装する最良の方法がわかりません. 私が現在プログラムしている方法では、BLL からのみデータを返すと、BO へのすべての参照が失われ、GC がそれらを要求します。これに基づいて、私はいくつかの質問があります:
1) BLL の呼び出し間でビジネス オブジェクトを維持する必要がありますか? 別の方法は、BLL を介してデータを渡すたびにそれらを再作成することですが、これは間違っているようです。
2) 単層アーキテクチャで BO を存続させる最善の方法は何ですか (UI に渡さない場合に参照を保持する方法は?)
3) n 層アプリケーションはどのようにこれを行いますか? BLL で BO を有効に保ち、UI からの更新を待ちますか? BO が不要になったときに確実にリリースされるようにするには、BLL で多くの "簿記" が必要ではないでしょうか?
洞察に感謝します。愚かなことを尋ねている場合はご容赦ください。私は知っている小さなプログラミングを独学したので、愚かな質問をしていて、それを知らないかもしれません.