請參閱下面的代碼:打破BLL(業務邏輯層)到BLL和DAL(數據訪問層)
Imports Microsoft.VisualBasic
Public Class PersonBLL
Private Name As String
Private Age As Integer
Dim objPersonDAL As New PersonDAL
Dim objPerson As Person
Public Sub getPersonByID()
objPerson = objPersonDAL.getPersonByID()
MsgBox(objPerson.Name)
End Sub
End Class
Public Class PersonDAL
Private Name As String
Private Age As Integer
Public Function getPersonByID() As Person
'Connect to database and get Person. Return a person object
Dim p1 As New Person
p1.Name = "Ian"
p1.Age = 30
Return p1
End Function
End Class
Public Class Person
Private _Name As String
Private _Age As Integer
Public Property Name() As String
Get
Return _Name
End Get
Set(ByVal value As String)
_Name = value
End Set
End Property
Public Property Age() As Integer
Get
Return _Age
End Get
Set(ByVal value As Integer)
_Age = value
End Set
End Property
End Class
PersonBLL調用PersonDAL並返回一個Person對象。這是正確的方法嗎?即我已經識別出一個持久類,並用一個函數來創建一個相應的DAL類,以訪問數據並返回Person對象。
有一條評論指出這個問題是「主觀的」。我同意這一點。我意識到設計取決於項目的要求。有沒有爲設計類似於SOLID(單一職責等)的DAL而記錄的原則等。
「正確的方法」有點主觀。 「這是一種有效的方法嗎?」是可以回答的 - 我會說「是」。 – David
@David Stratton,我已經更新了這個問題。你是否知道像設計數據訪問層特別相關的SOLID等原理? – w0051977
很好的編輯。我會讓聰明的人比我回答這個問題。這不是我的專業領域,大多數人在這個網站上比我更聰明。我可能會誤導你。我所要提供的就是我之前看過這種設計,來自非.NET背景的人 - 這似乎很常見。我個人覺得這很乏味,但就像我說的,我不是這個街區最聰明的人。 – David