Можно ли хранить изменяемые свойства предметной области как объект-значение?

Есть определенные части моего UserEntity, которые я хотел бы иметь возможность изменять и передавать, и есть определенные части, которые должны оставаться постоянными.

Например, я НИКОГДА не хочу менять идентификатор своего UserEntity, но такие вещи, как адрес электронной почты или пароль, могут часто меняться и могут также использоваться другими объектами за пределами UserEntity.

Одним из примеров этого может быть создание UserEntity. Поскольку UserEntity не может существовать без идентификатора, мой контроллер может создать объект UserData, который стандартизирует свойства UserEntity. После того, как сопоставитель создаст объект в БД, он создаст новый UserEntity и передаст объект id и UserData в конструкторе.

Когда пользователю UserEntity требуется информация, такая как адрес электронной почты или пароль, он может просто просмотреть свои данные пользователя.

Кажется более портативным, но не слишком ли это? Есть ли лучшее решение?

Примечание

  • Причина, по которой я думаю, что это может быть хорошо: значения изменяемых полей должны быть стандартизированы... и иногда эти поля должны передаваться за пределы самого объекта. Например, до того, как сущность была создана. Создавая объект значения, который можно передавать, мы предоставляем стандартизированное место для присвоения этих значений из любого места, а также то, что можно передавать за пределы объекта.

  • Под «стандартизацией» я подразумеваю, что моя информация должна быть единообразной, где бы она ни существовала. Например, электронная почтавсегда должна иметь длину nи быть в допустимом формате, имявсегда должно иметь длину nи т. д. Моя цель здесь в том, что я хотел бы иметь возможность устанавливать эти «правила» в одном месте... и, поскольку эти свойства UserEntity (изменяемые) существуют вне самой сущности, иногда они потенциально могут жить сами по себе, в своем собственном ценностном объекте.

7
задан johnnietheblack 22 March 2012 в 16:41
поделиться