Tôi đang phát triển một ứng dụng web bằng cách sử dụng kiến trúc phân lớp. Tôi có:Thực tiễn không tốt là sử dụng các đối tượng thực thể trên tất cả các lớp của ứng dụng web?
- Application Layer (Controller)
- Service Layer (Dịch vụ)
- Data Access Layer (DAO)
này kết nối với một cơ sở dữ liệu backend Oracle.
Tôi đang sử dụng JPA với Hibernate làm việc triển khai. Do đó, tôi tạo các thực thể để mô hình hóa khung nhìn đối tượng của các bảng cơ sở dữ liệu quan hệ của tôi.
Câu hỏi của tôi là ... Có được coi là thực hành không tốt để sử dụng các đối tượng thực thể này trên tất cả 3 lớp của tôi không?
Tôi biết nó cần phải được sử dụng bởi lớp Truy cập dữ liệu ít nhất nhưng còn hơn thế nữa về lớp Ứng dụng & Ứng dụng?
Tôi đã thấy một số người sử dụng DTO trong dịch vụ & lớp ứng dụng thay vào đó và họ thực hiện chuyển đổi giữa các DTO và thực thể giữa các lớp Dịch vụ & Truy cập dữ liệu.
Chỉ cần tự hỏi thực hành tốt nhất cho điều này là gì và cách tiếp cận tốt nhất là gì?
Phạm vi/thời gian phù hợp của một thực thể thường phụ thuộc vào tuổi thọ/phạm vi của người quản lý thực thể của nó.Chúng có thể đã cũ bên ngoài phạm vi quản lý nhưng loại bỏ chúng quá sớm và bạn có thể không sử dụng hiệu quả bộ nhớ cache cấp đầu tiên của người quản lý. Không có cách tiếp cận một kích thước phù hợp. Những gì bạn nên làm sẽ được quyết định bởi sự lựa chọn nền tảng, cách JPA được tích hợp và các yêu cầu. – McDowell