Identidade (programação orientada a objetos)

Na programação orientada a objetos , no design orientado a objetos e na análise orientada a objetos , a identidade de um objeto é ser distinto de qualquer outro objeto, independentemente dos valores das propriedades dos objetos. Ter identidade é uma propriedade fundamental dos objetos.

Isto está intimamente relacionado ao conceito filosófico de identidade .

Identidade e referências

Uma referência pode ser usada para se referir a um objeto com uma identidade específica. Uma referência contém as informações necessárias para que a propriedade de identidade seja realizada na linguagem de programação e permite o acesso ao objeto com a identidade. Um tipo de alvo de uma referência é uma função. Normalmente, as referências são isomórficas aos endereços de memória. No entanto, múltiplas dessas referências podem referir-se ao mesmo objeto, se alguma forma de mapeamento de endereço estiver presente ( endereços virtuais / tabelas de páginas / segmentos de memória ).

A identidade do objeto é menos útil como conceito semântico em ambientes ou situações em que a estrutura dos objetos não é encapsulada, e dois objetos são considerados o mesmo objeto com base em propriedades idênticas, mesmo que não sejam realmente a mesma instância física ( equivalência estrutural). No entanto, a identidade do objeto pode, no entanto, fornecer otimização. Uma função que testa se dois argumentos são o mesmo objeto pode rapidamente causar um curto-circuito para uma resposta afirmativa se os dois argumentos tiverem a mesma identidade (são referências à mesma instância). Somente se os argumentos forem objetos distintos é que as propriedades individuais precisam ser consideradas para determinar a igualdade, o que é uma operação mais cara. Por exemplo, inteiros bignum podem ser objetos alocados em heap, de modo que dois bignums sejam considerados iguais se representarem o mesmo número. Pode ser um desperdício de ciclos de máquina na função de igualdade não aproveitar a descoberta de que os dois argumentos comparados são referências ao mesmo bignum.

Consequências da identidade

A identidade dos objetos permite que os objetos sejam tratados como caixas pretas . O objeto não precisa expor sua estrutura interna. Ele ainda pode ser referenciado e suas outras propriedades podem ser acessadas por meio de seu comportamento externo associado à identidade. A identidade fornece um mecanismo para fazer referência a partes do objeto que não estão expostas na interface. Assim, a identidade é a base do polimorfismo na programação orientada a objetos .

A identidade permite a comparação de referências. Duas referências podem ser comparadas, sejam elas iguais ou não. Devido à propriedade de identidade, esta comparação possui propriedades especiais. Se a comparação de referências indicar que as referências são iguais, então fica claro que os dois objetos apontados pelas referências são o mesmo objeto. Se as referências não forem iguais, não será necessariamente garantido que a identidade dos objetos por trás dessas referências seja diferente. A identidade de objeto de dois objetos do mesmo tipo é a mesma, se cada alteração em qualquer um dos objetos também for uma alteração no outro objeto.

Modelo conceitual de identidade e orientado a objetos

A identidade permite a construção de um mundo ideal platônico, a ontologia ou modelo conceitual, que é frequentemente utilizado como base do pensamento orientado a objetos. O modelo conceitual descreve a visão do lado do cliente para um domínio , terminologia ou API . Este mundo contém objetos semelhantes a pontos como instâncias , propriedades dos objetos e links entre esses objetos. Os objetos do mundo podem ser agrupados para formar classes . As propriedades dos objetos podem ser agrupadas para formar funções. Os links podem ser agrupados para formar associações . Todos os locais do mundo, juntamente com as ligações entre os locais, formam a estrutura do mundo. Esses grupos são tipos das instâncias correspondentes do mundo.

Notas

Veja também

  • Meyer: Construção de software orientada a objetos, segunda edição
  • Identidade do objeto na Wayback Machine (arquivado em 15 de maio de 2008)
  • Design orientado a domínio : uma entidade é definida por identidade
Retrieved from "https://en.wikipedia.org/w/index.php?title=Identity_(object-oriented_programming)&oldid=1104242550"