Sự thiếu hiểu biết dai dẳng là một ứng dụng của nguyên tắc trách nhiệm duy nhất, trong thực tế có nghĩa là các Đối tượng miền ( DO ) không nên chứa mã liên quan đến sự kiên trì, thay vào đó chúng chỉ nên chứa logic miền.
a) Tôi giả sử điều này có nghĩa là mã liên hệ với các lớp thấp hơn (tức là các lớp bền vững) nằm ngoài mô hình miền trong các lớp khác ( OC ) của lớp logic nghiệp vụ?
b) Nếu giả định của tôi theo a) là đúng, thì DO , giả sử Customer
, không bao giờ chứa các phương thức như GetCustomers
hay GetCustomerByID
?
c) Nếu các giả định của tôi theo a) và b) là chính xác và giả sử Customer
đối tượng miền sử dụng tải lười biếng cho một số thuộc tính của nó, thì tại một số điểm Customer
logic bên trong phải liên hệ với OC , từ đó lấy ra dữ liệu bị loại bỏ. Nhưng nếu Customer
cần liên hệ với OC để nhận dữ liệu bị hủy, thì chúng tôi thực sự không thể khẳng định rằng Đối tượng miền không chứa logic liên quan đến tính bền bỉ?!
Cảm ơn bạn
TRẢ LỜI jkohlhepp
1) Tôi giả sử OrderProvider
và CustomerProvider
các lớp được chứa trong lớp logic nghiệp vụ?
2) Tôi thu thập từ câu trả lời của bạn rằng các giả định của tôi theo b) có đúng không?
3)
... Tôi sẽ kiểm tra xem liệu một số trường đơn hàng tư nhân đã được điền hay nếu nó là null. Nếu nó là null ...
Nhưng theo như tôi có thể nói, ngay khi mã miền cần kiểm tra xem order
trường riêng có được điền hay không và nếu không, liên hệ với OrderProvider, chúng tôi đã vi phạm nguyên tắc PI ?!