¿Qué es un objeto inmutable?

En la programación orientada a objetos, un objeto inmutable es un objeto cuyas propiedades no se pueden cambiar después de que se haya creado. La mayoría de los objetos, por el contrario, son objetos mutables, lo que significa que algunas o todas sus propiedades se pueden cambiar libremente después de la creación. Una variedad de lenguajes de computadora tienen la capacidad de crear objetos inmutables, incluidos Java, C ++, Erlang, TCL y Scala.

Un objeto inmutable se puede crear de una de dos maneras: crear una clase que sea de definición inmutable o declarando explícitamente un objeto mutable para ser inmutable para ser inmutable. La metodología para crear una clase inmutable varía según el lenguaje de la computadora que se utiliza. Independientemente del lenguaje, una clase inmutable no debe tener métodos que puedan cambiar sus datos internos y que no haya forma de cambiar los métodos, es decir, anulados o sobrecargados, de una manera que cambie sus datos internos. Esto es lo más complicado de los dos enfoques. Para crear un objeto inmutable a partir de un otroSE Mutable Object, por otro lado, a menudo se puede aplicar una palabra clave para designar el objeto como inmutable.

Como ejemplo, la creación de objetos inmutables en Java depende en gran medida de la palabra clave "final". Una forma rápida de hacer que una clase sea inmutable en Java es declarar la clase, así como todos sus métodos y miembros de datos, final. Una estrategia similar también se puede usar en C ++ con la palabra clave "const". Sin embargo, estos enfoques, dependiendo del contenido de la clase, podrían no ser los mejores. En general, los objetos generalmente pueden hacerse inmutables mediante el mantenimiento cuidadoso de sus datos internos.

Hacer un objeto inmutable usando una palabra clave, como en el ejemplo anterior, a menudo es mucho más fácil que escribir una clase completa para ser inmutable. El uso de este enfoque, sin embargo, tiene sus peligros. Al designar explícitamente un objeto inmutable de esta manera, es importante que el programador se asegure de que todas las propiedades apropiadasy los datos se han incorporado al objeto primero. Confiar en un objeto incompleto puede ser peligroso, particularmente si le falta una información esencial.

Si un objeto es mutable pero requiere que se creen datos inmutables correctamente, los datos inmutables deben inicializarse antes de que se pueda hacer el objeto mutable. Los objetos inmutables siempre son inmutables, ya sean valores de datos o objetos grandes, y siempre deben tratarse como tal. En general, un objeto inmutable no puede hacerse mutable después de haber sido creado, aunque a veces se puede copiar como objetos mutables. Por lo general, se puede suponer que un objeto inmutable y cualquiera de sus copias también son inmutables, lo que puede evitar problemas de datos o memoria.

OTROS IDIOMAS