Tôi đã tra cứu rất nhiều thông tin về mô hình DAO và tôi nhận được quan điểm của nó. Nhưng tôi cảm thấy như hầu hết các giải thích không kể toàn bộ câu chuyện và do đó tôi có nghĩa là nơi bạn sẽ thực sự sử dụng DAO của bạn. Vì vậy, ví dụ nếu tôi có một lớp người dùng và một UserDAO tương ứng mà có thể lưu và khôi phục người dùng đối với tôi, đó là cách chính xác:DAO mô hình và các đối tượng mô hình
Bộ điều khiển tạo ra các đối tượng người dùng và vượt qua nó để UserDAO để lưu nó vào cơ sở dữ liệu
Bộ điều khiển tạo ra các đối tượng người dùng và trong constructor của nó đối tượng người dùng thực hiện một cuộc gọi đến userDAO để cứu bản thân vào cơ sở dữ liệu
Đây là một mùi mã và bạn thiếu một lớp bổ sung "UserManager" mà trình điều khiển sẽ yêu cầu tạo người dùng. Các UserManager có trách nhiệm tạo cho người sử dụng và yêu cầu UserDAO để lưu nó
Tôi thực sự cảm thấy như lựa chọn thứ ba là tốt nhất, bởi vì tất cả những gì bộ điều khiển có nhiệm vụ là ủy yêu cầu đến đối tượng mô hình chính xác . Cách yêu thích của bạn là gì? Am i thiếu cái gì ở đây ?
Chỉ để thêm vào trang này; Tôi cũng thường tạo một đối tượng UserServices chịu trách nhiệm quản lý phiên/giao dịch. Sau đó tôi có UserDAO chỉ chịu trách nhiệm thực sự thực hiện các truy vấn được gọi từ UserServices. – sbrattla
@sbrattla - Nếu bạn đang sử dụng giao dịch người dùng, điều này chắc chắn có thể có ý nghĩa. Tôi đã tự động giả định các giao dịch EJB, mặc dù OP không đề cập đến chúng. Kneejerk :) – kostja
@Tom nếu bạn không đồng ý - hãy xây dựng – kostja