Да, я согласен, что название предполагает, что мое нынешнее мышление неверно.НО в надежде снова прийти к здравомыслию, вот как я добрался до этого плачевного состояния.
Предметный объект - это Адрес, а у предметного приложения сотни сотрудников в трех региональных отделениях.В этом контексте полезно рассматривать (3) адреса как объекты сущностей и сохранять в базе данных только эти три адреса.
Конечно, сотрудники имеют работу, потому что приложение обслуживает тысячи клиентов.В этом контексте более полезно рассматривать адрес как объект ValueObject.
Теперь я хотел бы иметь шаблон Party, чтобы поддерживать общие черты, которыми обладают компании и люди, например ... адреса.
Последний фактоид - у нас есть класс ValueObject, который делает то, что вы можете ожидать от объектов-значений (т. Е. Определяете равенство на основе открытых свойств), и класс Entity (равенство на основе некоторого идентификатора, если объект является постоянным).
Итак, что делать?Я играл со следующими классными идеями, прежде чем подумал, что смогу спросить это и посмотреть, какие ответы вернулись ...
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;
}
Есть ли какая-либо заслуга такой идеи??
Приветствия,
Berryl
ОТВЕТ
Да, мое мышление было дефектным: -)
Объект, который я искал, является сущностью, вконтекст модели ниже.
Благодаря IAbstract и эта замечательная ссылка