मैं डेटा एक्सेस लेयर (डीएएल) को कार्यान्वित कर रहा हूं, जो मूल रूप से डेटाबेस (सीआरयूडी) कॉल निष्पादित करने के लिए कक्षाओं (VB.NET) के साथ कक्षाओं का एक सेट है। मैं कक्षा पदानुक्रम के भीतर डीएएल को कॉल करने के लिए सबसे अच्छी जगह का पता लगाने की कोशिश कर रहा हूं। मुझे एक उदाहरण देने दें।ओओपी - डेटा एक्सेस लेयर पर कॉल कहां रखा जाए?
मान लीजिए कि मेरे पास क्लास ग्राहक है, केवल मानक आईडी, नाम, पता 1, आदि गुणों के साथ और शायद एक ओवरराइड ToString फ़ंक्शन या तो। , हालांकि
Me.DataGridView1.Datasource = Dal.Customer.ReadList
यह एक अच्छा अभ्यास करने के लिए नहीं है:
(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.
अब, मैं दल प्रस्तुति परत से तो जैसे कह सकते हैं: मैं भी इस तरह के रूप में साझा विधियों, के साथ एक दाल वर्ग है क्या प्रस्तुति परत दल के बारे में जागरूक है? क्या मुझे इसके बजाय ग्राहक ऑब्जेक्ट में विधियां डालना चाहिए और इस तरह दल को कॉल करना चाहिए?
Public Function ReadList() As List(Of Customer)
Return Dal.Customer.ReadList()
End Sub
Public Sub Create()
Dal.Customer.Create(Me)
End Sub
क्या यह "क्लीनर" ओओपी होगा? या प्रस्तुति देने के लिए स्वीकार्य अभ्यास है कि मेरे पिछले उदाहरण की तरह व्यावसायिक वस्तुओं को पारित करने दें:
Me.DataGridView1.Datasource = Dal.Customer.ReadList
Dim c As New Customer
c.Name = "Alpha Corporation"
c.Address1 = "123 Main Street"
Dal.Customer.Create(c)
आपकी प्रतिक्रिया के लिए धन्यवाद।
सभी तीन उत्तरदाताओं ने बहुत अच्छे जवाब दिए, लेकिन मुझे एक को सही के रूप में चुनना है। सबको धन्यवाद! – HardCode