Me gustaría poder especificar que las variables de miembro de un objeto son inmutables una vez que el objeto ha sido "inicializado", lo que para mí significa después de haber sido inyectado con cualquier dependencia y haber realizado cualquier otra operación de inicialización que solo puede realizar después de DI.Inmutabilidad después de inyección de dependencia, inicialización
¿Existen idiomas que satisfagan mi interés, que formalizan la DI, la inicialización y la inmutabilidad de soporte de esta manera? Tal vez es tonto hacerlos parte de un idioma; tal vez no. No estoy seguro.
Hoy programo en Java, pero no puedo usar "final" casi tanto como me gustaría, porque esas fases ocurren después de que el constructor haya terminado la ejecución. ¿Algún consejo sobre cómo obtener lo que quiero con Java? Creo que podría hacer que mis objetos implementen una clase base para que esas fases sucedan antes de que el constructor finalice, o use aspectos para hacer lo mismo.
¿Pensamientos?
Solo quiero que quede claro qué miembros son mutables y cuáles no. Extraño, pero nunca pensé en cómo la inyección del colocador es incompatible con el estado inmutable. Bueno, no estaba pensando en eso cuando escribí la pregunta, al menos :-) – Ladlestein