是的,我同意标题表明我目前的思路是有缺陷的。但是希望再次达到理智,这就是我如何进入这种遗憾的状态。
主题对象是一个地址,主题应用程序在三个区域办事处拥有数百名员工。在这种情况下,将(3)个地址视为实体对象是有用的,并且仅将这三个地址保留在数据库中。
当然,员工有工作,因为该应用程序服务于成千上万的客户。在这种情况下,将 Address 视为 ValueObject 更为有用。
现在我想要一个派对模式来维护公司和员工的共同特征,比如......地址。
最后一个事实 - 我们有一个 ValueObject 类,它执行您可能期望从值对象中完成的事情(即,根据公共属性确定相等性)和一个实体类(如果对象是持久的,则基于某个 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 和这个精彩的链接