2012-10-09 8 views
6

私はアプリケーションに取り組んでおり、Robert C. MartinのSOLIDの原則に従っています。私はコマンドパターンを使用していますが、実装については不思議でした。クリーンコードとアジャイルの原則のすべての例では、C#のコマンドオブジェクトは決して何も返しません。彼のコマンドインタフェースは次のとおりです。データを返すためのコマンドパターンの使用

public interface Command 
{ 
    void Execute(); 
} 

例の全てが等「AddEmployee」、「DelEmployee」、「EditEmployee」、ある私は「にgetAllEmployees」だろうコマンドを持っているか、私が作成し、いくつかの他の特別な「インターアクター」があるだろうその特定の目的は?私がその特定のケースを扱うことを考えている1つの方法は、上記のような非汎用的なものと、このような一般的なものとの2つのインターフェースを持つことです。

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

これはこのパターンの受け入れ可能な実装ですか、それともアプリケーションからデータにアクセスする別の方法ですか?

+1

CQS(コマンドとクエリの分離)を実装しようとしているようです。コマンドはデータを返すべきではありません。クエリの場合、特定のクエリオブジェクトがあります。単に 'Command 'の名前を 'Query 'に変更してください。 – alexn

答えて

5

コマンドは、状態(更新、削除、または追加)を変更するものです。

データを取得する場合(変更しない場合)、クエリを使用します。

CQSおよび関連するCQRSも参照してください。

+3

私はここにCQRSを導入することは混乱の原因になると思います。 – alexn

関連する問題