Я изучаю DDD и сталкиваюсь с утверждением, что "ценности-объекты" должны быть неизменными. Я понимаю, что это означает, что состояние объектов не должно меняться после его создания. Для меня это новый вид мышления, но во многих случаях это имеет смысл.
Хорошо, поэтому я начинаю создавать объекты неизменяемого значения.
- Я уверен, что они принимают все состояние в качестве параметров конструктору,
- Я не добавляю настройки свойств,
- и убедитесь, что никакие методы не могут изменять содержимое (возвращать только новые экземпляры).
Но теперь я хочу создать этот объект значения, который будет содержать 8 различных числовых значений. Если я создаю конструктор с 8 числовыми параметрами, я чувствую, что это будет не очень легко использовать, точнее - будет легко совершить ошибку при передаче чисел. Это не может быть хорошим дизайном.
Итак, есть вопросы: есть ли другие способы сделать мой неизменный объект лучше.., любую магию, которая может быть сделана на С#, чтобы преодолеть длинный список параметров в конструкторе? Мне очень интересно услышать ваши идеи.
ОБНОВЛЕНИЕ:. Прежде чем кто-нибудь это упоминает, здесь обсуждалась одна идея: Неизменяемый шаблон объекта в С# - что вы думаете?
Было бы интересно услышать другие предложения или комментарии, хотя.