はい、私はタイトルが私の現在の考え方に欠陥があることを示唆していることに同意します。しかし、再び正気に到達することを期待して、これが私がこの残念な状態に到達した方法です。
サブジェクトオブジェクトはアドレスであり、サブジェクトアプリケーションには3つの地域オフィスに数百人の従業員がいます。このコンテキストでは、(3)アドレスをエンティティオブジェクトとして扱い、それらの3つのアドレスのみをデータベースに保持すると便利です。
もちろん、アプリケーションは何千もの顧客にサービスを提供するため、従業員には雇用があります。このコンテキストでは、アドレスをValueObjectとして扱う方が便利です。
今、私は、企業と人々が持っている共通の特性を維持するためのパーティーパターンを持ちたいと思っています。
最後のファクトイド-値オブジェクトに期待できることを実行するValueObjectクラス(つまり、パブリックプロパティに基づいて同等性を決定する)とEntityクラス(オブジェクトが永続的である場合はIDに基づく同等性)があります。
じゃあ何をすればいいの?次のクラスのアイデアで遊んでいたのですが、これを聞いて、どのような答えが返ってくるのか見てみようと思いました...
class Address : ValueObject, IHaveAddress{
Line 1 {get;}
... etc
Address {get{return this;}} // this has an awkward smell
}
class EntityAddress : Entity<int>, IHaveAddress{
Address {get;}
}
interface IHaveAddress {
Address {get;}
}
class Party : Entity<int> {
IList<IHaveAddress> _address;
}
そのようなアイデアにメリットはありますか?
乾杯、
ベリール
答え
はい、私の考えは不完全でした:-)
私が探していたオブジェクトは、以下のモデルのコンテキストでは、エンティティです。
IAbstractとこの素晴らしいリンクに感謝します