Ý tưởng đưa dữ liệu và logic nghiệp vụ với nhau là thúc đẩy đóng gói và để hiển thị trạng thái nội bộ ít nhất có thể cho các đối tượng khác. Bằng cách đó, khách hàng có thể dựa vào một giao diện thay vì thực hiện.Xem nguyên tắc "Tell, Don't Ask" và Law of Demeter. Việc đóng gói giúp dễ hiểu các dữ liệu của tiểu bang có thể dễ dàng hơn, dễ đọc hơn, dễ phân tách các lớp hơn và dễ kiểm tra đơn vị hơn.
Ngoài logic nghiệp vụ (thường vào các lớp "Dịch vụ" hoặc "Người quản lý"), hãy đặt câu hỏi như "dữ liệu này được sử dụng ở đâu?" và "Nó có thể ở trong trạng thái nào?" rất khó trả lời. Nó cũng là một cách tư duy thủ tục, được bao bọc trong một vật thể. Điều này có thể dẫn đến một số anemic domain model.
Hành vi bên ngoài không phải lúc nào cũng xấu. Ví dụ: một service layer có thể dàn xếp các đối tượng miền, nhưng không lấy trách nhiệm thao tác của nhà nước. Hoặc, khi bạn chủ yếu làm đọc/ghi vào một DB ánh xạ độc đáo với các biểu mẫu đầu vào, có thể bạn không cần một mô hình miền - hoặc đối tượng đau đớn/ánh xạ quan hệ trên đầu nó đòi hỏi - ở tất cả.
Chuyển đối tượng thường phân phối các lớp kiến trúc từ nhau (hoặc từ hệ thống bên ngoài) bằng cách cung cấp thông tin trạng thái tối thiểu mà lớp gọi cần, không lộ bất kỳ logic nghiệp vụ nào.
Điều này có thể hữu ích, ví dụ như khi chuẩn bị thông tin cho quan điểm: chỉ cần cung cấp cho các quan điểm thông tin cần thiết, và không có gì khác, vì vậy nó có thể tập trung vào cách để hiển thị các thông tin, chứ không phải là gì thông tin để hiển thị. Ví dụ, TO có thể là một tập hợp của một số nguồn dữ liệu.
Một lợi thế là lượt xem và đối tượng miền của bạn được tách riêng. Việc sử dụng các đối tượng miền của bạn trong JSP có thể làm cho miền của bạn khó khăn hơn trong việc tái cấu trúc và thúc đẩy việc sử dụng băm và định vị bừa bãi (do đó phá vỡ đóng gói).
Tuy nhiên, cũng có một chi phí liên quan đến việc có rất nhiều Đối tượng chuyển và thường có nhiều trùng lặp. Một số dự án tôi đã kết thúc với TO's về cơ bản là phản ánh các đối tượng miền khác (mà tôi xem là một mẫu chống).
Nguồn
2008-09-21 09:18:16
Cảm ơn bạn :). Bạn vui lòng giải thích ý nghĩa của các đối tượng miền 'đúng' không? –