2010-12-11 4 views
0

最近、あるドメインモデルが後続のSave呼び出しでプロパティを介してドメインオブジェクトを更新することを許してはいけないという事実を知っている人がいました。しかし、すべての更新は明示的な方法で行う必要があります。私が言ったことを理解する方法の例:私は研究してもっと学ぶことができるようにこの "パターン"と名を挙げてください

不正なコード(それは私にはかなり正常なようだ):

var x = _repository.GetCustomerByID(5); 
x.Firstname = "Travis"; 
x.Lastname = "Laborde"; 
_respository.SaveCustomer(x); 

私はこの人がピッチングたと信じて、コードは次のようになります。

var x = _repository.GetCustomerByID(5); 
x.UpdateCustomerName("Travis", "Laborde"); 
_repository.SaveCustomer(x); 

私は詳細を知りたいです - このパターンには名前がありますので、私はBingでそれをGoogleに送ることができますか?

+3

「意見の一致した同僚」パターン。 –

+0

問題が別の「保存」コールを使用していないことは確かですか?ドメインモデルとのやりとりを単一のアトミックな要求として保つように求めることは、私にとっては多くの理由から理にかなっています。 – 6502

+0

"Google it on Bing"?!? – Andrea

答えて

2

私は特定の名前を持つこのパターンを認識してないんだけど、あなたが記述するものから、このための基本的な実用的な理由があります:

x.Firstname = "Travis"を書くことxオブジェクトがFirstname値が変更されたことを知らせていません。これにより、変更されたフィールドでUPDATEのみを使用するSaveCustomer関数を実装するのが難しくなります。

もちろん、メンバの代入を関数呼び出しとして扱うことをサポートしている言語では(たとえば、C#がそのプロパティで行うように)、このパターンははるかに面白くなりません。

+0

私はあなたの答えを読んで始めていました: "しかし、しかし、しかし..."あなたの最後の段落は、それらのbutsに対処します。私はDelphiで働いていますが、C#(主にDelphiに基づいていました)のように、プロパティは特定のgetterとsetterを持つことができ、オブジェクトはプロパティが変更されたことを知ることができます。実際には、私はOPFフレームワークでDelphiのプロパティ機能を特にこの理由で採用しています。 –

関連する問題