Una identidad en la programación orientada a objetos , diseño orientado a objetos y el análisis orientado a objetos describe la propiedad de los objetos que los distingue de otros objetos. Esto está estrechamente relacionado con el concepto filosófico de identidad .
Identidad y referencias
Una referencia puede ser utilizado 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 hacer referencia 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 en función de tener propiedades idénticas, incluso si en realidad no son la misma 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 cortocircuitar rápidamente a una respuesta afirmativa si los dos argumentos tienen la misma identidad (son referencias a la misma instancia). Solo si el argumento son objetos distintos, es necesario considerar las propiedades individuales para determinar la igualdad, que es una operación más cara. Por ejemplo, los enteros de bignum pueden ser objetos asignados en montones de modo que dos bignums se consideren iguales si representan el mismo número. Podría ser una pérdida 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 que los objetos se traten como cajas negras . El objeto no necesita exponer 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 las 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 apuntados por las referencias son el mismo objeto. Si las referencias no se comparan de la misma manera, no se garantiza necesariamente 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 se suele utilizar como base del pensamiento orientado a objetos. El modelo conceptual describe la vista del lado del cliente a 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 . Todas las ubicaciones del mundo junto con los vínculos entre las ubicaciones forman la estructura del mundo. Estos grupos son tipos de las correspondientes instancias del mundo.
Notas
Ver también
- Meyer: construcción de software orientado a objetos, segunda edición
- Identidad de objeto en Wayback Machine (archivado el 15 de mayo de 2008)
- Diseño impulsado por dominio : una entidad se define por identidad