Tôi đã cố tách riêng DAL khỏi Lớp kinh doanh của mình và khi làm như vậy, tôi quyết định tránh bất kỳ phương pháp ActiveRecord nào và thực hiện phương pháp tiếp cận DataMapper. Nói cách khác, các đối tượng miền của tôi sẽ không tự chăm sóc bản thân. Khi làm như vậy, tôi dường như đang lấn chiếm mô hình chống "mô hình miền thiếu máu". Ví dụ, một trong những thực thể trong chương trình của tôi là một tổ chức.Xử lý mô hình miền thiếu máu
Một tổ chức được thể hiện dưới dạng một cái gì đó như thế này:
class Organization {
private $orgId;
private $orgName;
// getters and setters
}
Vì vậy, về cơ bản tổ chức này không có gì khác hơn là đóng vai trò như "túi" (như Martin Fowler nói) đối với một số dữ liệu. Trong thế giới PHP nó không là gì hơn một mảng được tôn vinh. Không có hành vi nào được liên kết với nó.
Và hành vi trong chương trình, tôi đã gắn bó trong lớp "cấp dịch vụ" như một OrganizationService, chủ yếu phục vụ như một trung gian giữa các đối tượng này và DAL.
Khác với các vấn đề mở rộng quy mô với PHP (Tôi có lý do khác khiến tôi nhấn mạnh "đóng gói" dữ liệu của tôi trong các đối tượng này), cách tiếp cận này có hoàn toàn không?
Làm cách nào để bạn xử lý các mô hình miền của mình trong các trường hợp này? Có lẽ một tổ chức không phải là một phần của miền của tôi ngay từ đầu?
Làm thế nào bạn có thể có phương thức AssociateEmployee trong mô hình miền, nếu mô hình miền không có quyền truy cập vào một DataMapper? – bestattendance