У мене є кілька великих (більше 3 полів) об’єктів, які можуть і повинні бути незмінними. Кожного разу, коли я стикаюся з цим випадком, я схильний створювати огиду конструктора з довгими списками параметрів.
Це не дуже добре, його важко використовувати, і читабельність страждає.
Ще гірше, якщо поля мають якийсь тип колекції, як списки. Просте addSibling(S s)
настільки полегшило б створення об’єкта, але зробило об’єкт змінним.
Що ви, хлопці, використовуєте в таких випадках?
Я працюю на Scala та Java, але я думаю, що проблема полягає в мовній агностичності, якщо мова є об’єктно-орієнтованою.
Рішення, про які я можу придумати:
- "Конструктор мерзоти з довгими списками параметрів"
- Шаблон будівельника