Идентичность (объектно-ориентированное программирование) - Identity (object-oriented programming)

An идентичность в объектно-ориентированного программирования, объектно-ориентированный дизайн и объектно-ориентированный анализ описывает свойство объекты что отличает их от других объектов. Это тесно связано с философской концепцией идентичность.

Идентичность и ссылки

А Справка может использоваться для ссылки на объект с определенным идентификатором. Ссылка содержит информацию, которая необходима для реализации свойства идентификации в язык программирования, и разрешает доступ к объекту с удостоверением. Типом объекта ссылки является роль. Обычно ссылки изоморфны адресам памяти. Однако несколько таких ссылок могут относиться к одному и тому же объекту, если присутствует некоторая форма сопоставления адресов (виртуальные адреса / таблицы страниц / сегменты памяти ).

Идентичность объекта менее полезна как семантическая концепция в средах или ситуациях, в которых структура объектов не инкапсулирована, и два объекта считаются одним и тем же объектом на основании идентичных свойств, даже если они фактически не являются одним и тем же физическим экземпляром ( структурная эквивалентность). Тем не менее, идентификация объекта может обеспечить оптимизацию. Функция, которая проверяет, являются ли два аргумента одним и тем же объектом, может быстро получить утвердительный ответ, если два аргумента имеют одинаковую идентичность (являются ссылками на один и тот же экземпляр). Только если аргументом являются отдельные объекты, необходимо учитывать отдельные свойства для определения равенства, что является более дорогостоящей операцией. Например, bignum целые числа могут быть объектами, размещенными в куче, так что два больших числа считаются одинаковыми, если они представляют одно и то же число. Не использовать преимущества открытия того, что два сравниваемых аргумента являются ссылками на один и тот же bignum, может быть пустой тратой машинных циклов в функции равенства.

Последствия идентичности

Идентичность объектов позволяет рассматривать объекты как черные ящики. Объект не должен раскрывать свою внутреннюю структуру. На него по-прежнему можно ссылаться, а к другим его свойствам можно получить доступ через его внешнее поведение, связанное с идентификатором. Удостоверение обеспечивает механизм для ссылки на такие части объекта, которые не представлены в интерфейсе. Таким образом, идентичность является основой полиморфизм в объектно-ориентированном программировании.

Идентичность позволяет сравнивать ссылки. Можно сравнить две ссылки независимо от того, равны они или нет. Благодаря свойству идентичности это сравнение имеет особые свойства. Если сравнение ссылок показывает, что ссылки равны, тогда ясно, что два объекта, на которые указывают ссылки, являются одним и тем же объектом. Если ссылки не сравниваются одинаково, то не обязательно гарантируется, что идентичность объектов, стоящих за этими ссылками, различается. Идентификационные данные двух объектов одного типа одинаковы, если каждое изменение одного объекта также является изменением другого объекта.

Идентичность и объектно-ориентированная концептуальная модель

Идентичность позволяет построить платонический идеальный мир, онтология или концептуальная модель, которая часто используется в качестве основы объектно-ориентированного мышления. Концептуальная модель описывает клиент вид сбоку на домен, терминология или API. Этот мир содержит точечные объекты как экземпляры, свойства объектов и связи между этими объектами. Объекты в мире можно сгруппировать, чтобы сформировать классы. Свойства объектов можно сгруппировать в роли. Ссылки можно сгруппировать, чтобы сформировать ассоциации. Все локации в мире вместе со связями между локациями образуют структуру мира. Эти группы типы соответствующих экземпляров мира.

Заметки

Смотрите также