私は正しい方向に進むかどうかを知りたかっただけです。.netで要求 - 応答パターンを実装しています
私はすべての操作が要求オブジェクトを送信し、応答オブジェクトを戻す要求 - 応答(要求 - 応答)パターンを実装しています。例については
:
Public FetchCustomerResponse Fetch(FetchCustomerRequest searchObject)
私は私のリポジトリの実装についての混乱の中で一種のです。
public interface IRepositoryReadOnly<TGetRequest, TGetResponse> : IDisposable
{
TGetResponse FetchAll();
TGetResponse Fetch(TGetRequest reqObject);
}
public interface IRepositoryReadWrite<TGetRequest, TGetResponse, TPutRequest, TPutResponse> : IRepositoryReadOnly<TGetRequest, TGetResponse>
{
TPutResponse Insert(TPutRequest dto);
TPutResponse Update(TPutRequest dto);
void Delete(long id);
}
私が午前問題はvoid Delete(long id);
である:私はこのような一般的なrepositiryインタフェースを持っています。
IRepositoryReadWrite
に追加する必要など
UserName, TimeStamp
のような他のフィールドを含むオブジェクトを受け入れるようにしたいですか?
これは私の見方です。 DeleteRequestとDeleteReponseオブジェクト以来
public interface IRepositoryReadWrite<TGetRequest, TGetResponse, TPutRequest, TPutResponse, TDeleteRequest, TDeleteResponse> : IRepositoryReadOnly<TGetRequest, TGetResponse>
{
TPutResponse Insert(TPutRequest dto);
TPutResponse Update(TPutRequest dto);
TDeleteResponse Delete(long TDeleteRequest);
}
は、すべての操作(私はそう思う)のために同じになりますこれは良い実装になるか、私はここで完全にオフトラックだし、すべて間違っていますか?
'TDeleteResponse Delete(TDeleteRequest request);'は、最後のコードサンプルの最後の行に書かれていますか? –
リクエスト/レスポンスパターンは、通信プロトコルが厳密ではない緩やかに結合されたシステムでのみ実際に行います。オブジェクトが相互に通信するとき、オブジェクトはコンパイラによって強制される互いの間のより明白なコントラクトを持つことができます。この場合の要求 - 応答パターンは、不要なノイズをコードに導入する可能性があります。あなたは本当に必要かどうかを検討するかもしれません。 –
ドメイン駆動型デザインリポジトリでは、エンティティへのアクセスやルートの集約が可能です。リクエスト/レスポンスパターンはリポジトリにはあまり適していないと思います。要求/応答パターンは、通常、アプリケーションのサービス層で使用されます。いくつかの種類のアセンブラクラスまたはヘルパーメソッドは、要求/応答オブジェクトとドメインオブジェクトの間で変換しています。 – Hans