В большинстве случаев это не имеет значения.Мое эмпирическое правило таково:
- Если вы собираетесь использовать одно и то же выражение для инициализации переменной во всех конструкторах, и она не зависит от каких-либо параметров, сделайте это в точке объявления.
- В противном случае вы все равно вынуждены делать это в конструкторе.
Причина: при инициализации в точке объявления получается clear что значение будет присвоено одинаково независимо от конструктора и параметров.Это также делает ваши конструкторы более простыми и свободными от дублирования.
Предостережение: не также присваивайте значение в конструкторе, так как в противном случае это лишает законной силы предыдущую ясность:)
Я предлагаю вам спросить вашего коллегу (или кого-либо еще) о конкретных причинах его утверждений о том, что ваш текущий код "плохой".Я уверен, что есть правильные альтернативные точки зрения, но если он не может предоставить какие-либо причины, то нет причин обращать внимание IMO.
Еще одно быстрое замечание - я предполагаю, что ни один из инициализаторовнужно сделать какую-то значительную работу.Если они это сделают, это может привести к путанице, особенно если создаются исключения.В общем, мне не нравится, когда мои конструкторы выполняют большую работу.