2011-06-24 87 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)'方法。一切取决于你需要什么。 –