Mã kích hoạt câu hỏi này là Dịch vụ trong cơ sở mã của công ty tôi chứa bốn DAO khác nhau. Tôi đã không nghĩ nhiều về điều này cho đến khi tôi thấy rằng Dịch vụ này đã trở nên bị xáo trộn với các phương pháp thuộc về một Dịch vụ hoàn toàn khác. Lý do cho việc tạo ra các phương pháp không được bảo đảm bên trong Dịch vụ này đơn giản chỉ vì DAO cần thiết là thành viên riêng của lớp Dịch vụ này.Mối quan hệ giữa Dịch vụ và DAO có phải là một hoặc một hay nhiều?
Đây có phải là sơ suất của nhà phát triển hay sai trong hầu hết các trường hợp có nhiều DAO cho mỗi lớp dịch vụ?
Lưu ý: Tôi nhận thấy rằng có vẻ hợp lý khi có nhiều hơn một DAO cho mỗi lớp Dịch vụ miễn là chúng được chứa trong cùng một cơ sở dữ liệu. Nhưng có DAO từ nhiều cơ sở dữ liệu có vẻ như nó có thể gây ra vấn đề.
Có. Trong trường hợp của tôi, tôi nghĩ rằng tôi đã đối phó với việc phát triển sơ suất nơi mọi người đang chuyển công cụ vào Dịch vụ dựa trên các lĩnh vực DAO của nó thay vì dựa trên ý định của Dịch vụ. – stevebot
Ahh, các vấn đề về sự đa hình và tính đa hình phụ ... tất cả những điều đó sang một bên, giai thoại hay ;-) –
Theo tôi, một Dịch vụ cung cấp một bộ dịch vụ cụ thể để xử lý một số hành động của người dùng. Các dịch vụ này có thể hoặc không thể sử dụng một DAO (s) để thực hiện công việc. Một DAO, mặt khác, cung cấp thông tin liên lạc giữa Dịch vụ và một cơ sở dữ liệu, nhưng nó không nên biết bất cứ điều gì về những gì yêu cầu của người dùng là tất cả về. Nếu nhà phát triển kết hợp cả hai thứ này lại với nhau, thì tôi không thấy điểm có Dịch vụ và DAO vì bạn chỉ có thể kết hợp tất cả lại với nhau, điều này thật tệ vì bạn không thể sử dụng lại toàn bộ mã. :) – limc