Vì vậy, tôi đã hoàn thành phân tích OO và thiết kế ứng dụng web mà tôi đang xây dựng và hiện đang được triển khai. Các quyết định thiết kế đã được thực hiện để thực hiện hệ thống bằng cách sử dụng Python và khung phát triển web Django.Phân tách các lớp miền từ Lớp mô hình Django
Tôi muốn bắt đầu triển khai một số lớp thực thể tên miền cần kiên trì. Có vẻ như Django sẽ có tôi thực hiện các lớp học được thừa kế từ các lớp mô hình Django để sử dụng ORM Django cho sự kiên trì. Tuy nhiên, điều này có vẻ như sự liên kết quá mạnh giữa các thực thể lớp của tôi và cơ chế kiên trì. Điều gì sẽ xảy ra nếu ở một giai đoạn nào đó tôi muốn bỏ mặc Django và sử dụng một khung phát triển web khác, hoặc chỉ bỏ qua ORM của Django để thay thế? Bây giờ tôi phải viết lại các lớp thực thể miền của mình từ đầu. Vì vậy sẽ tốt hơn nếu triển khai các lớp miền của tôi dưới dạng các lớp Python độc lập, đóng gói tất cả logic nghiệp vụ của chúng tôi, sau đó sử dụng một số cơ chế (mẫu thiết kế như cầu nối hoặc bộ điều hợp hoặc ???) các lớp miền này cho ORM Django, ví dụ thông qua một lớp mô hình Django đã được thiết lập phù hợp cho điều này.
Có ai có đề xuất về cách thực hiện việc này không? Có vẻ như từ tất cả tôi đã đọc mà mọi người chỉ đơn giản là thực hiện các lớp miền của họ như là các lớp kế thừa từ lớp mô hình Django và có logic kinh doanh hỗn hợp trong lớp này. Điều này dường như không phải là ý tưởng tốt cho những thay đổi về đường dây, bảo trì, khả năng sử dụng lại, vv ..
Nó sẽ là một câu trả lời tốt hơn nếu bạn giải thích tại sao đó sẽ là một tính năng chứ không phải là một lỗi. Tôi yêu Python, nhưng sự kết luận của Django về các khái niệm khác nhau không phải lúc nào cũng là một chiến thắng. – AdamC