2012-07-04 48 views
9

Có thực hành tốt để thực hiện các thực thể ngủ đông cho đến lớp trình bày không? hoặc Do chúng ta cần phải ánh xạ tất cả các thuộc tính của thực thể cho một đối tượng giá trị và đối tượng giá trị sẽ được sử dụng cho giao diện người dùng?Hibernate DTO và ánh xạ đối tượng giá trị

Vui lòng cho tôi biết các ưu điểm và nhược điểm của cả hai ứng dụng.

Khi nào chúng ta nên sử dụng cái gì?

+1

Đối tượng DTO và giá trị là giống nhau. DTO có nghĩa là * Đối tượng truyền dữ liệu *. Một đối tượng Hibernate liên tục được gọi là * entity *. –

Trả lời

13

những gì bạn gọi là DTO là các thực thể trong ORM. Chúng thường là một phần của mô hình miền chứa logic nghiệp vụ và chứa hầu hết dữ liệu thời gian nhiều hơn mức cần thiết để hiển thị các chế độ xem riêng lẻ. quy tắc cá nhân của tôi của ngón tay cái

Sử dụng các thực thể trong Chế độ xem khi không có lớp chuyển giao giữa Dal và xem và có rất ít logic kinh doanh:

  • Ưu điểm:
    • một mô hình
    • không cần phải ánh xạ giữa các kiểu
    • sử dụng tải lười biếng dễ dàng hơn
  • Nhược điểm:
    • mỗi thay đổi trong mô hình có nghĩa là thay đổi quan điểm
    • nhiều disadvatages với lớp chuyển xem dưới đây

Bản đồ các đơn vị để DTOs khi có một lớp chuyển giao và/hoặc chế độ xem khác với các thực thể hoặc tổng hợp nhiều thực thể khác nhau

  • Ưu điểm:
    • DTOs/views không cần phải thay đổi khi có sự thay đổi các mô hình
    • tránh gửi các đơn vị trong dây trong đó có vô số vấn đề (lười tải ngoại lệ, nhiều dữ liệu không cần thiết gửi đi, phơi bày thông tin nhạy cảm,. ..)
    • Mô hình có ít trách nhiệm hơn (tuần tự hóa) giúp việc sử dụng lại dễ dàng hơn (ví dụ: xử lý backend)
  • Nhược điểm:
    • nhiều lớp học để viết
    • mã để dịch các đơn vị để DTOs
0

Bạn cũng có thể đạt được nhiều hơn một chút về hiệu suất và sử dụng RAM hiệu quả nếu bạn vạch trần các thực thể của mình trên các lớp và mô-đun khác nhau. nó hoàn toàn tùy thuộc vào bạn theo cách nào, nhưng tôi chưa bao giờ thấy doanh nghiệp hoặc thậm chí là ứng dụng kích thước trung bình cho thấy các thực thể ngoài dự án/lớp dịch vụ dữ liệu của họ.

Các vấn đề liên quan