我正在爲訂購系統項目編寫自定義DAL(VB.NET)。我想解釋一下它是如何編碼的,並且接收一些替代的想法以使得對DAL的編碼更容易/更易讀。 DAL是一個n層(不是n層)應用程序的一部分,每個層都在它自己的程序集/ DLL中。我應該如何提供對此自定義DAL的訪問權限?
DAL由幾個具有特定行爲的類組成。例如,有一個Order類負責檢索和保存訂單。大多數類只有兩個方法,一個是「Get」和一個「Save」,每個方法有多個重載。這些類標記爲「朋友」,並且只對DAL(在它自己的程序集中)可見。
在大多數情況下,DAL返回我稱之爲「數據對象」的內容。此對象是一個只包含數據和驗證的類,位於BLL和DAL都可以讀取的常見程序集中。
爲了向公衆提供DAL,我目前有一個靜態(模塊)類,它有許多共享成員。簡化版本看起來是這樣的:
Public Class DAL
Private Sub New
End Sub
Public Shared Function GetOrder(OrderID as String) as OrderData
Dim OrderGetter as New OrderClass
Return OrderGetter.GetOrder(OrderID)
End Function
End Class
Friend Class OrderClass
Friend Function GetOrder(OrderID as string) as OrderData
End Function
End Class
的BLL將要求像這樣的順序:
DAL.GetOrder("123456")
正如你可以想像,這得到很快累贅。我主要對構建對DAL的訪問感興趣,以便Intellisense非常直觀。就目前而言,DAL類中有太多方法/函數具有相似的名稱。
我有一個想法是把DAL分解成嵌套類:
Public Class DAL
Private Sub New
End Sub
Public Class Orders
Private Sub New
End Sub
Public Shared Function Get(OrderID as string) as OrderData
End Function
End Class
End Class
所以BLL會叫這樣的:
DAL.Orders.Get("12345")
這清除了一陣,但它留下許多隻有其他類的引用的類,我不喜歡出於某種原因。
沒有訴諸從BLL到DAL傳遞DB特定指令(如where子句),爲DAL提供單一訪問點的最佳或最常見的做法是什麼?