に私を保存私は、一般的に、ビジネス・オブジェクト上でこのような例を見てきましたか?これは、ビジネスロジックよりもコンテキストやデータに関連しているようです。ビジネスオブジェクト
例えば、このような何かを経るかもしれません。このオブジェクトの消費者...
...Get form values from a web app...
Thingy thingy = Thingy.CreateNew(Form["name"].Value, Form["gadget"].Value, Form["process"].Value);
thingy.Save();
あるいは、更新のためにこのような何か...
... Get form values from a web app...
Thingy thingy = Thingy.GetThingyByID(Int32.Parse(Form["id"].Value));
Thingy.Name = Form["name"].Value;
Thingy.Save();
は、なぜこれがあります?計算やビジネス固有のルールなどの実際のビジネスロジックを含んでおらず、検索/永続性を避けるのはなぜですか?このアプローチを使用
、コードは次のようになります。これらの例の両方で
... Get form values from a web app...
Thingy thingy = Thingy.CreateNew(Form["name"].Value, Form["gadget"].Value, Form["process"].Value);
ThingyRepository.AddThingy(ref thingy, out id);
あるいは、更新のためにこのような何か...
... get form values from a web app ...
Thingy thingy = ThingyRepository.GetThingyByID(Int32.Parse(Form["id"].Value));
thingy.Name = Form["Name"].Value;
ThingyRepository.UpdateThingy(ref thingy);
、消費者、人オブジェクトに対して何が行われているかを最もよく知っており、リポジトリを呼び出し、ADDまたはUPDATEを要求します。オブジェクトはそのコンテキストではDUMBのままですが、引き続き検索または永続化されるのではなく、それ自体に関連するコアビジネスロジックを提供します。
要するに、ビジネスオブジェクト自体の中でGETメソッドとSAVEメソッドを統合することのメリットはありません。
私は不平を言い合い、順応しなければならないのですか、何か不足していますか?
これは実際にアクティブレコードとドメインモデルの違いです。それぞれは、彼らの場所、長所と短所を持っています。 –