Создание всех полей final
в целом является хорошей идеей, но иногда я нахожу, что все делаю в конструкторе. Недавно я закончил с классом, выполняющим фактически все в конструкторе, включая чтение файла свойств и доступ к базе данных.
С одной стороны, для этого и предназначен класс, он инкапсулирует прочитанные данные и мне нравится полностью инициализировать объекты. Конструктор не является сложным вообще, поскольку он делегирует большую часть работы, поэтому он выглядит хорошо.
С другой стороны, это немного странно. Более того, в этот разговор примерно в 17:58 есть веские причины не делать много работы в конструкторе. Я думаю, что я могу устранить проблему, передав соответствующие манекены в качестве аргументов конструктора.
Остается вопрос: много ли работает (или даже вся работа) в конструкторах?