У меня есть несколько больших (более 3 полей) объектов, которые могут и должны быть неизменными. Каждый раз, когда я сталкиваюсь с этим случаем, я склонен создавать мерзкие конструкторы с длинными списками параметров.
Это кажется неправильным, его трудно использовать, а также страдает удобочитаемость.
Еще хуже, если поля представляют собой своего рода коллекцию, например списки. Простой addSibling(S s)
может настолько облегчить создание объекта, но делает объект изменяемым.
Что вы, ребята, используете в таких случаях?
Я использую Scala и Java, но я думаю, что проблема не зависит от языка, если язык является объектно-ориентированным.
Решения, о которых я могу думать:
- «Конструкторские мерзости с длинными списками параметров»
- Паттерн Строитель