2011-06-24 41 views
1

目前我正在研究在VB中使用VS2010實現窗體應用程序的最佳設計模式。返回數據訪問層BusinessObjects

我對某些設計模式有些困惑。我明白,DAL應返回的對象,而不是的DataReader,數據集等,但......如果我在我的DAL兩個功能:GetProductById & GetAllProducts

的產品對象respectivley這兩個函數會返回一個產品對象和集合。產品不會是BOL對象嗎?

如果我將CRUD添加到這個對象中,那麼它不能再屬於BOL你有兩個版本的對象,一個用於DAL &一個用於BLL而沒有數據庫方法?

我知道這裏有類似的帖子,但他們只是使我更加困惑,是否有人可以簡單地解釋DAL對象如何與BOL對象進行交互和區別。

謝謝。

回答

2

您描述的場景很好 - 您的DAL 應該返回業務對象(或使用MVC術語 - 模型對象)
模型對象是一個不同的'層',控制器層和DA層都與之交互。
你的CRUD方法也可以進入DAL(SaveProduct()或DeleteProduct()等)

+0

好吧,MVC現在這就是爲什麼我很困惑!但我到了那裏。所以...我的數據層知道我的模型對象,並且可以創建一個產品列表並將其返回給我的控制器,該控制器執行它對我的視圖所做的事情...然後,如果我想刪除所述產品,我將發送它到我的DAL DeleteProduct(產品)中的方法?所以我必須從DAL創建一個產品,然後從我的控制器發回DAL進行刪除? – baileyswalk

+0

全部取決於您的應用程序的具體情況;如果在你的應用中更有意義,你也可以有一個'DeleteProduct(int productId)'方法。一切取決於你需要什麼。 –