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