Kịch bản:
- Ngăn xếp: Java, Spring, Hibernate.
- Mô hình: Ứng dụng Máy khách-Máy chủ.
- Mẫu: Model-View-Controller (MVC).
Các lớp lớp dịch vụ có ba hành vi:
Một số dịch vụ có quy tắc kinh doanh trong các phương thức và ủy thác sự kiên trì cho ứng dụng. Giống:
EntityManager.save (thực thể);
Một số dịch vụ chỉ cần gọi một hàm cơ sở dữ liệu (truyền tham số) Giống như:
CallableStatement cls = con.prepareCall ("{gọi cơ sở dữ liệu hàm (args)}");
Một số dịch vụ có phương pháp với cả hai hành vi.
Những câu hỏi của tôi:
- Có bất kỳ vấn đề trong việc có các dịch vụ ứng dụng gọi - trực tiếp - chức năng cơ sở dữ liệu? Đây không phải là thực hành xấu? Điều gì sẽ là một mô hình kiến trúc áp dụng cho một dự án như thế này?
- Có bất kỳ vấn đề trong việc kết hợp hành vi trong cùng một dịch vụ không? Chẳng hạn như giao dịch và tính nhất quán?
- Trong trường hợp bảo trì, việc đóng gói này có làm cho nhà phát triển mơ hồ rằng anh ta cũng nên thay đổi các chức năng trong cơ sở dữ liệu không? Làm thế nào để tránh điều này?
- Liệu kịch bản này xảy ra trong các ứng dụng khác trên toàn thế giới hay đó chỉ là một lỗi kiến trúc?