Cargando



Java - Clases y Objetos Inmutables

En este tutorial vamos a tratar el tema de las clases y objetos inmutables, desde sus conceptos hasta como obtener un código en Java.


jul 06 2014 02:15
Avanzado
El desarrollo de una aplicación no es solamente escribir código que resuelva un problema, como ha quedado demostrado existen miles de formas para atacar cada situación que se nos presenta. La orientación a objetos va más allá de hacer clases y hacer instancias, es algo que debe ser un estilo y una filosofía de desarrollo.

Para poder seguir adentrándonos en lo que representa la orientación a objetos como filosofía, debemos entender diferentes conceptos, unos más simples, otros más complejos, pero que al ir sumándolos en nuestro conocimiento lograremos tener un mayor entendimiento de cómo afrontar una aplicación.

Clases Inmutables


Cuando creamos un objeto, lo normal es que podamos modificar sus atributos en el curso de su existencia en nuestros programas o aplicaciones, sin embargo este comportamiento no siempre es lo que deseamos, ya sea por razones técnicas o por que deseamos mantener la integridad de las instancias, habrá momentos en los que nos vamos a querer que un objeto sea modificado.

¿Qué son?
Para poder atender esta necesidad, tenemos lo que se llaman las clases inmutables, estas clases tienen una serie de atributos privados, los cuales por su visibilidad no pueden ser tocados por elementos externos, pero además estas clases no poseen métodos modificadores, por lo que una vez establecido el objeto a través del constructor sus atributos no cambiaran.


Para lograr que una clase sea inmutable uno de los primeros pasos es no tener métodos set, es decir aquellos que le asignan valores a los atributos, veamos en el siguiente código un pequeño ejemplo de cómo conseguir una clase inmutable:

java_obj_inmutable.jpg


Vemos en el ejemplo como construimos una clase Estudiante, en dicha clase entonces tenemos que cumplimos con todos los requisitos para que sea una clase inmutable, hemos definido atributos privados, el constructor es el único que asigna valores al momento de instanciar y tenemos métodos que nos permiten acceder a los valores de los atributos.

Podemos pensar que esto es muy sencillo, pero en parte no lo es, ya que a pesar que colocar los atributos privados y no tener métodos que los modifiquen es un inicio, sin embargo debemos estar atentos a otros elementos que podamos incluir en nuestras clases que puedan contravenir el principio que hemos estado desarrollando, veamos el siguiente ejemplo:

java_obj_inmutable2.jpg


Vemos que es prácticamente nuestra misma clase estudiante, pero hemos definido un nuevo atributo que es “fechaCreado” dicho atributo tiene como función almacenar la fecha en la que creamos un objeto, pero es del tipo Date, esto nos supone un problema ya que al ser de este tipo podemos utilizar un método que cambie el valor y asociarlo a la referencia del atributo, con ello ya no sería una clase inmutable.

Tenemos entonces que debemos cuidar estos detalles si queremos utilizar este recurso en la creación de nuestras aplicaciones y programas.

Hemos aprendido en este tutorial un concepto nuevo de la orientación a objetos y más allá que hayamos realizado los ejemplos en Java, esto podemos aplicarlo a cualquier lenguaje, claro salvando las diferencias técnicas, con lo que estaremos trabajando con filosofía y no con tecnicismos.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X