Un objeto inmutable en la programación, una vez que hayas creado e inicializado , nunca puede cambiar su estado . Esto puede parecer contraproducente desde el punto de programación para manipular los datos . Sin embargo , mediante el diseño de sus clases para eliminar los lugares donde los datos pueden cambiar , puede eliminar categorías completas de los 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 por olvidar inicializar los miembros de su clase. Cosas que necesitará
entorno de desarrollo integrado ( IDE ), como Eclipse o NetBeans
Mostrar más instrucciones
1
declarar la clase como definitiva :
pública MyClass última clase {
...
}
Esto evita que la herencia de la clase , lo que puede minar su inmutabilidad .
2
Declare sus campos miembros como definitiva :
...
thenumber privadas final int ;
privado theName final String ;
...
Esto obliga al compilador para asegurar los campos miembros no cambian después de la inicialización
3
inicializar los campos miembros en el constructor : .
MyClass público ( int thenumber , String theName ) {
this.theNumber = thenumber ;
this.theName = theName ;
}
4
Agregar obtener métodos para permitir el acceso a los campos :
...
getTheNumber public int () { thenumber return; }
getTheName public String () { theName return;}
Página 5
Agregar lógica de validación al constructor para asegurar que crea el objeto correctamente. Por ejemplo , si su código de espera thenumber esté siempre entre 0 y 100 , se puede comprobar eso y lanzar una excepción ( obras IllegalArgumentException ) .
MyClass público ( int thenumber , theName String) {
< p > if ( thenumber < =
this.theNumber = thenumber ;
this.theName = theName ;
}
Este paso le ayuda a saber cualquier casos reales de su clase son válidas.
6
Para evitar el tedio de la inicialización de todos los campos en el constructor de clases con un gran número de campos miembros , refactorizar en otros más "objetos de parámetros. " Mediante la creación de pequeñas objetos que contienen los datos que necesita en grupos lógicos , se reduce el número de parámetros de la firma de su constructor , manteniendo inmutable .