2011-06-24 4 views
1

現在、私はVBでVS2010を使用しているWindowsフォームアプリケーションに実装するための最良のデザインパターンを研究しています。BusinessObjectsを返すデータアクセス層

デザインパターンが混乱しています。私は私が私のDALに二つの機能を持っている場合、DALはオブジェクトを返し、ないのDataReaders、データセットなどが、...する必要があることを理解する:これらの2つの関数はProductオブジェクトと製品のコレクションはrespectivleyオブジェクト返しますGetProductById & GetAllProducts

。製品はBOLオブジェクトではありませんか?

私は、このオブジェクトにCRUDを追加する場合、それはもはやBOLに属していないデータベース・メソッドずにオブジェクトの2つのバージョン、DAL &のための1つのBLLのための1つを持って行うことができますか?

私はここに同様の記事があると知っていますが、彼らは私をさらに混乱させてしまいました。誰かがDALオブジェクトがどのように相互作用し、BOLオブジェクトと異なるのかを簡単に説明することができます。

ありがとうございました。

答えて

2

説明したシナリオは、DAL の場合はのビジネスオブジェクトを返す必要があります(または、MVC用語モデルオブジェクトを使用する)。
モデルオブジェクトはコントローラレイヤとDAレイヤの両方が相互作用する異なる「レイヤ」です。
あなたのCRUDメソッドはDAL(SaveProduct()やDeleteProduct()などにも入ります)

+0

OK、MVCこれは私が混乱している理由です!しかし、私はそこに着いています。だから...私のデータ層は私のモデルオブジェクトを知っていて、プロダクトのリストを作成してそれを私のコントローラに返すことができます。それは私のビューに何をしなければならないのですか?その後、それは私のDAL DeleteProduct(製品)のメソッドにありますか?だから私はDALから製品を作成し、私のコントローラから削除のためにDALに送り返さなければならないでしょうか? – baileyswalk

+0

はすべて、アプリケーションの特定のシナリオに応じて異なります。あなたのアプリケーションでもっと理にかなっているなら、あなたは 'DeleteProduct(int productId)'メソッドを持っているかもしれません。すべてあなたが必要なものに依存します。 –

関連する問題