Tecnología

Inicio

Cómo crear un objeto inmutable en Java

Cómo crear un objeto inmutable en Java


Un objeto inmutable en la programación, una vez que haya creado e inicializado, nunca puede cambiar su estado. Esto puede parecer contraproducente desde el punto de programación es para manipular los datos. Sin embargo, mediante el diseño de sus clases para eliminar los lugares donde sus datos pueden cambiar, se puede eliminar categorías enteras de problemas potenciales de su programa. Esto asegura que los datos son siempre válidos y sus clases son automáticamente thread-safe, y usted no tiene que preocuparse de olvidar para inicializar los miembros de su clase.

Instrucciones

1 Declarar una clase como definitiva:

public final class MiClase {

...

}

Esto evita que la herencia de su clase, lo que puede debilitar su inmutabilidad.

2 Declarar sus campos miembros como finales:

...

Thenumber final int privado;

Cadena final privado elNombre;

...

Esto obliga a que el compilador para asegurar los campos miembros no cambian después de la inicialización.

3 Inicializar los campos miembros en el constructor:

MiClase públicos (int Thenumber, Cadena elNombre) {

this.theNumber = theNumber;

this.theName = elNombre;

}

4 Añadir métodos get para permitir el acceso a los campos de:

...

public int getTheNumber () {return Thenumber; }

Cadena getTheName pública () {return elNombre; }

5 Añadir lógica de validación al constructor para asegurar que crea el objeto correctamente. Por ejemplo, si su código de espera Thenumber para estar siempre entre 0 y 100, se comprueba el estado y lanzar una excepción (IllegalArgumentException funciona).

MiClase públicos (int Thenumber, Cadena elNombre) {

if (theNumber <=

this.theNumber = Thenumber;

this.theName = elNombre;

}

Este paso le ayuda a saber todas las instancias reales de su clase son válidos.

6 Para evitar el tedio de la inicialización de cada campo en el constructor de clases con un gran número de campos miembros, refactorizar en pequeños objetos de parámetros "." Mediante la creación de objetos más pequeños que contienen los datos que necesita en grupos lógicos, se reduce el número de parámetros en la firma de su constructor, manteniendo la inmutabilidad.