Tôi đang triển khai Lớp Truy cập Dữ liệu (DAL), về cơ bản là một tập hợp các lớp với các hàm được chia sẻ (VB.NET) để thực thi các cuộc gọi cơ sở dữ liệu (CRUD). Tôi đang cố gắng tìm ra nơi tốt nhất để thực hiện các cuộc gọi đến DAL trong hệ thống phân cấp lớp. Để tôi lấy một ví dụ.OOP - Nơi đặt các cuộc gọi đến Lớp Truy cập Dữ liệu?
Giả sử tôi có một lớp Khách hàng, chỉ với các ID tiêu chuẩn, Tên, Địa chỉ1, v.v ... và có thể là chức năng ToString bị ghi đè. Tôi cũng có một lớp DAL với các phương pháp chung, chẳng hạn như:
(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.
Bây giờ, tôi có thể gọi Dal từ các lớp trình bày như sau:
Me.DataGridView1.Datasource = Dal.Customer.ReadList
Tuy nhiên, là nó không phải là một thói quen tốt có lớp trình bày nhận thức về Dal ở tất cả? Tôi có nên đặt các phương thức trong đối tượng Customer và gọi Dal, như thế này không?
Public Function ReadList() As List(Of Customer)
Return Dal.Customer.ReadList()
End Sub
Public Sub Create()
Dal.Customer.Create(Me)
End Sub
Đây có phải là OOP "sạch hơn" không? Hoặc là thực tế có thể chấp nhận để cho bản trình bày gọi Dal, chuyển các đối tượng kinh doanh như ví dụ trước của tôi:
Me.DataGridView1.Datasource = Dal.Customer.ReadList
Dim c As New Customer
c.Name = "Alpha Corporation"
c.Address1 = "123 Main Street"
Dal.Customer.Create(c)
Cảm ơn phản hồi của bạn.
Tất cả ba người trả lời đều có câu trả lời tuyệt vời, nhưng tôi phải chọn một câu trả lời đúng. Cảm ơn mọi người! – HardCode