Идентичность (объектно-ориентированное программирование)
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
В — это его отличие от любого объектно-ориентированном программировании, объектно-ориентированном проектировании и объектно-ориентированном анализе идентичность другого объекта объекта, независимо от значений свойств объекта. Наличие идентичности является фундаментальным свойством объектов.
Это тесно связано с философской концепцией идентичности .
Айдентика и ссылки
[ редактировать ]Ссылка . может использоваться для ссылки на объект с определенным идентификатором Ссылка содержит информацию, необходимую для реализации свойства идентификации на языке программирования , и позволяет получить доступ к объекту с идентификатором. Типом цели ссылки является роль. Обычно ссылки изоморфны адресам памяти. Однако несколько таких ссылок могут ссылаться на один и тот же объект, если присутствует некоторая форма сопоставления адресов ( виртуальные адреса / таблицы страниц / сегменты памяти ).
Идентичность объекта менее полезна в качестве семантического понятия в средах или ситуациях, в которых структура объектов не инкапсулирована, и два объекта считаются одним и тем же объектом на основании наличия идентичных свойств, даже если они на самом деле не являются одним и тем же физическим экземпляром ( структурная эквивалентность). Однако идентичность объекта, тем не менее, может обеспечить оптимизацию. Функция, которая проверяет, являются ли два аргумента одним и тем же объектом, может быстро дать утвердительный ответ, если два аргумента имеют одинаковую идентичность (являются ссылками на один и тот же экземпляр). Только если аргументом являются отдельные объекты, необходимо учитывать отдельные свойства для определения равенства, что является более дорогостоящей операцией. Например, целые числа bignum могут быть объектами, выделенными в куче, так что два bignum считаются одинаковыми, если они представляют одно и то же число. Возможно, было бы напрасной тратой машинных циклов в функции равенства не воспользоваться открытием того, что два сравниваемых аргумента являются ссылками на одно и то же большое число.
Последствия идентичности
[ редактировать ]Идентичность объектов позволяет рассматривать их как черные ящики . Объекту не обязательно раскрывать свою внутреннюю структуру. На него по-прежнему можно ссылаться, а к другим его свойствам можно получить доступ через его внешнее поведение, связанное с идентификатором. Идентичность обеспечивает механизм обращения к таким частям объекта, которые не отображаются в интерфейсе. Таким образом, идентичность является основой полиморфизма в объектно-ориентированном программировании .
Идентичность позволяет сравнивать ссылки. Две ссылки можно сравнивать независимо от того, равны они или нет. Благодаря свойству идентичности это сравнение имеет особые свойства. Если сравнение ссылок показывает, что ссылки равны, тогда ясно, что два объекта, на которые указывают ссылки, являются одним и тем же объектом. Если ссылки не сравниваются равными, то не обязательно гарантируется, что идентичность объектов, стоящих за этими ссылками, различна. Идентичность объекта двух объектов одного и того же типа одинакова, если каждое изменение любого объекта также является изменением другого объекта.
Идентичность и объектно-ориентированная концептуальная модель
[ редактировать ]Идентичность позволяет построить платонический идеальный мир, онтологию или концептуальную модель, которая часто используется в качестве основы объектно-ориентированного мышления. Концептуальная модель описывает взгляд со стороны клиента на предметную область , терминологию или API . Этот мир содержит точечные объекты в качестве экземпляров , свойства объектов и связи между этими объектами. Объекты в мире можно группировать в классы . Свойства объектов можно группировать для формирования ролей . Ссылки могут быть сгруппированы для формирования ассоциаций . Все локации мира вместе со связями между локациями образуют структуру мира. Эти группы являются типами соответствующих экземпляров мира.
Примечания
[ редактировать ]См. также
[ редактировать ]- Мейер: Объектно-ориентированное построение программного обеспечения, второе издание.
- Идентификация объекта в Wayback Machine (архивировано 15 мая 2008 г.)
- Проектирование на основе предметной области : сущность определяется идентичностью.