Я видел, как некоторые объектно -ориентированные эксперты советуют, чтобы объекты доменов (POCO) были неизменными. < /p>
то есть их состояние должно быть полностью определено на конструкции, и изменения в состоянии должны требовать создания совершенно нового экземпляра. Как реконструировать объект домена на основе данных в базе данных?class User
{
private string _emailAddress;
public User(string emailAddress, string password)
{
// ... generate hash & seed
_emailAddress = emailAddress;
}
public string PasswordHash { get; private set; }
public string PasswordSeed { get; private set; }
public bool ValidatePassword(string password)
{
// validate it against the stored hash
}
}
< /code>
В приведенном выше примере я хочу сохранить состояние объекта и получить его позже. Это означает хранение пароля, пароль и EmailAddress. < /P>
Но структура класса мешает мне сделать это. Не существует параметров конструктора для их передачи, и я даже не могу построить объект без них, потому что «пароль» должен быть предоставлен, и я не знаю, каким был оригинальный пароль. Я не могу установить свойства «пароль» или «пароль», потому что они «приватный набор». Читать/написать. Но тогда, где моя инкапсуляция и неизменность? Я хотел применить определенный рабочий процесс в моих объектах домена. Нет концепции инкапсуляции. Каждый столбец в таблице является «публичным», и каждое значение «изменчиво». Или есть какая-то известная стратегия для обойти это, о которой я просто не знаю?
Подробнее здесь: https://stackoverflow.com/questions/695 ... l-database
Постоянные неизменные объекты в реляционную базу данных ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Нужно ли копировать неизменные модели на новую схему версии в SwiftData во время миграции?
Anonymous » » в форуме IOS - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-