Trên trang 382 của cuốn sách này có một đoạn nói về việc sử dụng các đối tượng giá trị trong tập hợp, dưới gốc (thực thể). Có một ví dụ về Product
điều đó, bên cạnh các giá trị khác, chứa một Set<ProductBacklogItem>
- tập hợp các thực thể .
Bây giờ, Vernon cố gắng giải thích tại sao ProductBacklogItem
là một thực thể chứ không phải là một đối tượng giá trị:
Có nhiều lý do tại sao ProductBacklogItem được mô hình hóa dưới dạng Thực thể thay vì Giá trị. Như đã thảo luận trong Giá trị đối tượng (6), do cơ sở dữ liệu sao lưu được sử dụng thông qua Hibernate, nên nó phải mô hình hóa các bộ sưu tập Giá trị dưới dạng thực thể cơ sở dữ liệu. Sắp xếp lại bất kỳ một trong các thành phần có thể khiến một số lượng đáng kể, thậm chí tất cả các phiên bản ProductBacklogItem bị xóa và thay thế. Điều đó sẽ có xu hướng gây ra chi phí đáng kể trong cơ sở hạ tầng. Là một Thực thể, nó cho phép thay đổi thuộc tính đặt hàng trên bất kỳ và tất cả các yếu tố bộ sưu tập thường xuyên như chủ sở hữu sản phẩm yêu cầu. Tuy nhiên, nếu chúng ta chuyển từ sử dụng Hibernate với MySQL sang kho lưu trữ khóa-giá trị, chúng ta có thể dễ dàng thay đổi ProductBacklogItem thành loại Giá trị thay thế. Khi sử dụng kho lưu trữ khóa hoặc giá trị tài liệu,
Tôi không hiểu tại sao triển khai Kho lưu trữ xác định xem một số mô hình sẽ là Đối tượng hoặc Đối tượng Giá trị? Nếu chúng ta đến cửa hàng khóa-giá trị, chúng ta vẫn có thể yêu cầu anh ấy nói về.
Bạn có nghĩ rằng điều này có ý nghĩa?