Đây là một câu hỏi tôi đã hỏi một lúc trước về SO, nhưng nó có thể được thảo luận tốt hơn ở đây ...
Nơi tôi làm việc, chúng tôi đã qua lại về chủ đề này một số lần và đang tìm kiếm một kiểm tra vệ sinh. Đây là câu hỏi: Các đối tượng kinh doanh nên là các thùng chứa dữ liệu (giống như các DTO ) hay chúng cũng nên chứa logic có thể thực hiện một số chức năng trên đối tượng đó.
Ví dụ - Lấy một đối tượng khách hàng, nó có thể chứa một số thuộc tính phổ biến (Tên, Id, v.v.), đối tượng khách hàng đó có nên bao gồm các hàm (Lưu, Calc, v.v.) không?
Một dòng lý luận nói tách biệt đối tượng khỏi chức năng (nguyên tắc chịu trách nhiệm duy nhất) và đưa chức năng vào lớp hoặc đối tượng Business Logic.
Một dòng lý luận khác nói, không, nếu tôi có một đối tượng khách hàng, tôi chỉ muốn gọi cho Khách hàng. Lưu lại và được thực hiện với nó. Tại sao tôi cần biết về một lớp khác để cứu khách hàng nếu tôi tiêu thụ đối tượng?
Hai dự án cuối cùng của chúng tôi đã có các đối tượng tách khỏi chức năng, nhưng cuộc tranh luận đã được đưa ra một lần nữa về một dự án mới.
Mà có ý nghĩa hơn và tại sao ??