Một POCO sau các quy tắc của OOP. Cần (nhưng không phải) có trạng thái và. POCO đến từ POJO, được đặt ra bởi Martin Fowler [anecdote here]. Ông đã sử dụng thuật ngữ POJO như một cách để làm cho nó gợi cảm hơn để từ chối việc triển khai EJB của khung công tác nặng nề. POCO nên được sử dụng trong cùng một ngữ cảnh trong .Net. Đừng để các khuôn khổ ra lệnh cho thiết kế của đối tượng của bạn.
Mục đích duy nhất của DTO là chuyển trạng thái và không có hành vi. Hãy xem explanation of a DTO của Martin Fowler để biết ví dụ về việc sử dụng mẫu này.
Đây là sự khác biệt: POCO mô tả một cách tiếp cận để lập trình (tốt cũ lỗi thời đối tượng lập trình hướng), nơi DTO là một mô hình được sử dụng để "truyền dữ liệu" sử dụng các đối tượng.
Mặc dù bạn có thể xử lý POCO như DTO, nhưng bạn có nguy cơ tạo anemic domain model nếu bạn làm như vậy. Ngoài ra, có cấu trúc không phù hợp, vì DTO nên được thiết kế để truyền dữ liệu, không đại diện cho cấu trúc thực sự của miền doanh nghiệp. Kết quả của việc này là DTO có xu hướng phẳng hơn so với miền thực của bạn.
Trong một miền có bất kỳ sự phức tạp hợp lý nào, bạn hầu như luôn tạo ra các POCO miền riêng biệt tốt hơn và dịch chúng sang DTO. DDD (thiết kế định hướng miền) xác định anti-corruption layer (một liên kết khác here, nhưng điều tốt nhất cần làm là buy the book), là cấu trúc tốt giúp phân biệt rõ ràng.
Nguồn
2009-04-07 12:11:09
"POCO = Đối tượng CLR cũ (hoặc tốt hơn: Lớp)". Vì vậy, các đối tượng của bản chất này trong VB.NET cũng sẽ là POCO, chứ không phải POVO. –