В некоторых моделях объектов домена я вижу, что создается абстрактный базовый класс (который реализует Equals и GetHashCode) для всех объектов Entity домена, от которых он наследует, чтобы получить свою идентичность.
Мне не ясно, зачем нужен этот базовый класс и когда и почему его следует использовать. Можете ли вы дать мне некоторое представление об этом или направить мне ссылку, которая говорит об этом
Спасибо
Теперь я понимаю преимущества переопределения равенства (эта ссылка помогла http://en.csharp -online.net / CSharp_Canonical_Forms —Identity_Equality)
Возвращаясь к доменно-ориентированному дизайну, я бы хотел немного расширить свой вопрос;
У меня есть клиентский объект, который я использую в качестве идентификатора guid.
Если я создаю 2 экземпляра клиента с одинаковыми данными, поскольку в качестве идентификатора я использую guid, это будут два разных объекта. Но так как они имеют все атрибуты одинаковые, они должны быть одним и тем же объектом (или лучше использовать DDD, чтобы сохранить их уникальными и отдельными?)
Попытка понять, должен ли я обрабатывать равенство двух объектов по их полному совпадению значений атрибутов. Если я иду в этом направлении, то я смотрю либо на переопределение равенства базового класса на уровне подкласса, и реализую эти условия, либо на идентичности объекта представляем строку или хэш-код (?), Представляющий значения всех эти атрибуты и используют равенство базового класса.
Я мог бы быть немного отсюда, так что заранее спасибо за терпение.