один вариант использования будет modularize
class
initialization
.
Если класс имеет несколько зависимостей и инициализация каждой зависимости нетривиальна, то имеет смысл иметь отдельный блок init
для каждой инициализации зависимости, чтобы ваш код оставался управляемым. вы можете иметь один блок инициализации, но за кодом будет трудно следить и управлять им. Я думаю, Принцип единой ответственности применим здесь.
Например, допустим, у нас есть класс с несколькими зависимостями, если вы используете несколько блоков инициализации, ваш код будет
// Initilization code for dependency 1
init{
// complex calculations for dependency 1 initialization
}
// Initilization code for dependency 2
init{
// complex calculations for dependency 2 initialization
}
// Initilization code for dependency n
init{
// complex calculations for nth dependency initialization
}
Здесь ваша инициализация выглядит ясной, и вы можете видеть, что делает блок инициализации.
Если, однако, вы используете один блок инициализации, ваш код будет
// Initilization code for all dependencies
init{
// complex calculations for 1st dependency initialization
// complex calculations for 2nd dependency initialization
// complex calculations for nth dependency initialization
}