当前位置:  开发笔记 > 后端 > 正文

OOP - 将呼叫放到数据访问层的位置?

如何解决《OOP-将呼叫放到数据访问层的位置?》经验,为你挑选了1个好方法。

我正在实现一个数据访问层(DAL),它基本上是一组具有(VB.NET)实现执行数据库(CRUD)调用的共享函数的类.我试图找出在类层次结构中调用DAL的最佳位置.让我举个例子.

假设我有一个Customer类,只有标准ID,Name,Address1等属性,可能还有一个重写的ToString函数.我还有一个带有共享方法的DAL类,例如:

(pseudocode)

Namespace Dal

Public Class Customer

Public Shared Function Read(id As Integer) As Customer

Public Shared Function ReadList() As List(Of Customer)

Public Shared Sub Create(c As Customer)

'etc.

现在,我可以从表示层调用Dal,如下所示:

Me.DataGridView1.Datasource = Dal.Customer.ReadList

但是,让表示层完全了解Dal是不是一个好习惯?我应该把方法放在Customer对象中并调用Dal,就像这样吗?

Public Function ReadList() As List(Of Customer)
    Return Dal.Customer.ReadList()
End Sub

Public Sub Create()
    Dal.Customer.Create(Me)
End Sub

这会是"更清洁"的OOP吗?或者,让演示文稿调用Dal,传递业务对象,如前面的示例,这是可接受的做法:

Me.DataGridView1.Datasource = Dal.Customer.ReadList

Dim c As New Customer
c.Name = "Alpha Corporation"
c.Address1 = "123 Main Street"
Dal.Customer.Create(c)

感谢您的反馈意见.



1> Andrew Hare..:

您的应用程序对DAL的了解越少,那就越好。有几种方法可以做到这一点,我认为您的做法正确。我认为您可能希望研究此实现的工厂模式,因为您将能够将DAL实现隐藏在工厂后面,并从工厂返回实体和实体集合。

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有