Identidad (programación orientada a objetos)

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

En la programación orientada a objetos, el diseño orientado a objetos y el análisis orientado a objetos, la identidad de un objeto es su diferenciación de cualquier otro objeto, independientemente de los valores de los objetos' propiedades. Tener identidad es una propiedad fundamental de los objetos.

Esto está estrechamente relacionado con el concepto filosófico de identidad.

Identidad y referencias

Se puede utilizar una referencia para referirse a un objeto con una identidad específica. Una referencia contiene la información necesaria para que la propiedad de identidad se realice en el lenguaje de programación y permite el acceso al objeto con la identidad. Un tipo de objetivo de una referencia es un rol. Normalmente, las referencias son isomorfas a las direcciones de memoria. Sin embargo, varias referencias de este tipo pueden referirse al mismo objeto, si existe alguna forma de asignación de direcciones (direcciones virtuales/tablas de páginas/segmentos de memoria).

La identidad de objeto es menos útil como concepto semántico en entornos o situaciones en las que la estructura de los objetos no está encapsulada y dos objetos se consideran el mismo objeto por tener propiedades idénticas, incluso si en realidad no son iguales. instancia física (equivalencia estructural). Sin embargo, la identidad del objeto puede proporcionar optimización. Una función que prueba si dos argumentos son el mismo objeto puede provocar rápidamente un cortocircuito en una respuesta afirmativa si los dos argumentos tienen la misma identidad (son referencias a la misma instancia). Sólo si el argumento son objetos distintos es necesario considerar las propiedades individuales para determinar la igualdad, lo cual es una operación más costosa. Por ejemplo, los números enteros bignum pueden ser objetos asignados en montón de modo que dos bignum se consideren iguales si representan el mismo número. Podría ser un desperdicio de ciclos de máquina en la función de igualdad no aprovechar el descubrimiento de que los dos argumentos que se comparan son referencias al mismo bignum.

Consecuencias de la identidad

La identidad de los objetos permite tratarlos como cajas negras. No es necesario que el objeto exponga su estructura interna. Todavía se puede hacer referencia a él y se puede acceder a sus otras propiedades a través de su comportamiento externo asociado con la identidad. La identidad proporciona un mecanismo para hacer referencia a partes del objeto que no están expuestas en la interfaz. Por tanto, la identidad es la base del polimorfismo en la programación orientada a objetos.

La identidad permite comparar referencias. Se pueden comparar dos referencias sean iguales o no. Debido a la propiedad de identidad, esta comparación tiene propiedades especiales. Si la comparación de referencias indica que las referencias son iguales, entonces está claro que los dos objetos señalados por las referencias son el mismo objeto. Si las referencias no son iguales, entonces no necesariamente se garantiza que la identidad de los objetos detrás de esas referencias sea diferente. La identidad de objeto de dos objetos del mismo tipo es la misma, si cada cambio en cualquiera de los objetos es también un cambio en el otro objeto.

Identidad y modelo conceptual orientado a objetos

La identidad permite la construcción de un mundo ideal platónico, la ontología o modelo conceptual, que a menudo se utiliza como base del pensamiento orientado a objetos. El modelo conceptual describe la vista del lado del cliente de un dominio, terminología o API. Este mundo contiene objetos puntuales como instancias, propiedades de los objetos y vínculos entre esos objetos. Los objetos del mundo se pueden agrupar para formar clases. Las propiedades de los objetos se pueden agrupar para formar roles. Los enlaces se pueden agrupar para formar asociaciones. Todos los lugares del mundo, junto con los vínculos entre ellos, forman la estructura del mundo. Estos grupos son tipos de las instancias correspondientes del mundo.

Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save