Я хотел бы иметь возможность указать, что переменные-члены объекта являются неизменяемыми после того, как объект был «инициализирован», что для меня означает после того, как он был введен с любыми зависимостями и выполнил любые другие операции инициализации, которые он может выполнять только после ДИ.
Существуют ли языки, которые удовлетворяют мой интерес — которые формализуют DI, инициализацию и поддерживают неизменность таким образом? Может быть, глупо делать их частью языка; возможно, нет. Я не уверен.
Сегодня я программирую на Java, но я не могу использовать "final" почти так часто, как хотелось бы, потому что эти фазы происходят после завершения выполнения конструктора. Любые советы о том, как получить то, что я хочу с Java? Я предполагаю, что мои объекты могли бы реализовать базовый класс, чтобы эти фазы происходили до завершения конструктора, или использовать аспекты, чтобы сделать то же самое.
Мысли?