Los objetos inmutables pueden ser útiles en aplicaciones de subprocesos múltiples. Múltiples subprocesos pueden actuar sobre los datos representados por objetos inmutables sin preocuparse de que otros subprocesos cambien los datos. Por lo tanto, los objetos inmutables se consideran más seguros para subprocesos que los objetos mutables.
¿Cuál es el objetivo de los objetos inmutables?
La confianza máxima en objetos inmutables es ampliamente aceptada como una buena estrategia para crear código simple y confiable. Los objetos inmutables son particularmente útiles en aplicaciones concurrentes. Dado que no pueden cambiar de estado, no pueden corromperse por la interferencia de subprocesos ni observarse en un estado incoherente.
¿Qué objetos deberían llamarse inmutables?
Los objetos inmutables son simplemente objetos cuyo estado (los datos del objeto) no pueden cambiar después de la construcción. Los ejemplos de objetos inmutables del JDK incluyen String e Integer. Los objetos inmutables simplifican enormemente su programa, ya que: son fáciles de construir, probar y usar.
¿Cómo se implementa un objeto inmutable?
Para crear un objeto inmutable, debe seguir algunas reglas simples:
- No agregue ningún método setter.
- Declarar todos los campos como definitivos y privados.
- Si un campo es un objeto mutable, cree copias defensivas del mismo para los métodos getter.
- Si un objeto mutable pasado al constructor debe asignarse a un campo, cree una copia defensiva del mismo.
¿Dónde vamos?usar clase inmutable en Java?
Las clases inmutables facilitan la programación concurrente. Las clases inmutables aseguran que los valores no se cambien en medio de una operación sin usar bloques sincronizados. Al evitar los bloques de sincronización, evita los interbloqueos.