2012-10-09 26 views
6

Tôi đang làm việc trên một ứng dụng và cố gắng tuân theo các nguyên tắc SOLID của Robert C. Martin. Tôi đang sử dụng mẫu lệnh và tôi đã tự hỏi về việc thực hiện. Trong tất cả các ví dụ của ông trong luật sạch và nguyên tắc nhanh, các mẫu và thực tiễn trong C# các đối tượng lệnh của ông không bao giờ trả lại bất cứ điều gì. Giao diện Command của anh ta là;Sử dụng mẫu lệnh để trả lại dữ liệu

public interface Command 
{ 
    void Execute(); 
} 

Tất cả các ví dụ là "AddEmployee", "DelEmployee", "EditEmployee", vv tôi sẽ có một lệnh đó sẽ là "GetAllEmployees" hoặc là có một số khác biệt "INteractor" Tôi sẽ tạo cho mục đích cụ thể đó? Một cách mà tôi đang nghĩ đến việc xử lý trường hợp cụ thể đó là có hai giao diện không giống như một giao diện bên trên và một giao diện chung như thế này;

public interface Command<T> 
{ 
    T Execute(); 
} 

Điều tôi đang hỏi đây có phải là cách triển khai được chấp nhận của mẫu này hoặc có cách nào khác để chúng tôi truy cập dữ liệu từ ứng dụng không?

+1

Có vẻ như bạn đang cố triển khai CQS (phân biệt lệnh và truy vấn). Lệnh sẽ không bao giờ trả về bất kỳ dữ liệu nào. Đối với các truy vấn bạn có đối tượng truy vấn cụ thể. Chỉ cần đổi tên 'Command ' thành 'Truy vấn ' và bạn tốt. – alexn

Trả lời

5

Lệnh là thứ thay đổi trạng thái (cập nhật, xóa hoặc bổ sung).

Khi nhận dữ liệu (và không thay đổi), bạn sẽ sử dụng truy vấn .

Cũng xem CQS và số liên quan CQRS.

+3

Tôi nghĩ rằng việc giới thiệu CQRS ở đây có thể gây ra rất nhiều sự nhầm lẫn. – alexn

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