Tôi hơi bối rối về một ví dụ được tìm thấy trên web - spring & hibernate (điểm 4. Model & BO & DAO
). Có các lớp Model, DAO và BO (+ DAO và BO). Những gì tôi không hiểu rõ ràng là tại sao DAO và BO được tách ra thành các lớp khác nhau nếu chúng chia sẻ chính xác các chức năng giống nhau (chỉ khác biệt là BO có bộ cài DAO).DAO & BO (lớp truy cập dữ liệu) - kiến trúc
Tác giả chỉ giải thích, rằng các mô hình:
rất hữu ích để xác định các lớp rõ ràng để tránh lộn xộn lên cấu trúc dự án
nhưng có vẻ như quá thiết kế để cho tôi (ít nhất trong trường hợp này). Tôi biết ví dụ này là rất đơn giản, nhưng những gì phân chia lớp này có thể hữu ích cho? Ai đó có thể cung cấp một ví dụ?
tôi imange Bos của một người sẽ _hold_ dữ liệu trong khi DAO của một người sẽ _retrieve_ dữ liệu. –
Nếu DAO không được tách rời thì sẽ rất khó cho các BO (dịch vụ) sử dụng lại các DAO. Có những ưu điểm khác nữa, giống như nếu bạn thay đổi khung công tác DB hoặc ORM cơ bản, BOs không bị ảnh hưởng vì chỉ có phần thực hiện của DAO cần thay đổi. – techuser