~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 0AEF5C2F5F0FA9BA115C440F4D10D334__1716778620 ✰
Заголовок документа оригинал.:
✰ Object (computer science) - Wikipedia ✰
Заголовок документа перевод.:
✰ Объект (информатика) — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Object_(computer_science) ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/0a/34/0aef5c2f5f0fa9ba115c440f4d10d334.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/0a/34/0aef5c2f5f0fa9ba115c440f4d10d334__translat.html ✰
Дата и время сохранения документа:
✰ 16.06.2024 19:29:39 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 27 May 2024, at 05:57 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Объект (информатика) — Википедия Jump to content

Объект (информатика)

Из Википедии, бесплатной энциклопедии

В информатике объектом переменная может быть , структура данных , функция или метод . Являясь областями памяти , объекты содержат значение и на них ссылаются идентификаторы .

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

В реляционной модели управления базой данных объектом может быть таблица или столбец или связь между данными и объектом базы данных (например, связь возраста человека с конкретным человеком). [1]

Объектно-ориентированные языки [ править ]

Важным различием языков программирования является разница между объектно-ориентированным языком и объектно-ориентированным языком. Язык обычно считается объектно-ориентированным, если он включает в себя основные возможности объекта: идентичность, свойства и атрибуты. Язык считается объектно-ориентированным, если он объектно-ориентирован, а также обладает возможностью полиморфизма , наследования , инкапсуляции и, возможно, композиции . Полиморфизм означает возможность перегружать имя функции несколькими вариантами поведения в зависимости от того, какие объекты ей передаются. Обычная передача сообщений различает только первый объект и считает, что это «отправка сообщения» этому объекту. Однако некоторые объектно-ориентированные языки программирования, такие как Flavors и Common Lisp Object System (CLOS), позволяют различать больше, чем первый параметр функции. [2] Наследование — это возможность создать подкласс объектного класса, создать новый класс, который является подклассом существующего и наследует все ограничения данных и поведение своих родителей, но также добавляет новые и/или изменяет один или несколько из них. [3] [4]

Объектно-ориентированное программирование [ править ]

В объектно-ориентированном программировании объект представляет собой абстрактный тип данных с добавлением полиморфизма и наследования . Вместо того, чтобы структурировать программы как код и данные, объектно-ориентированная система объединяет их, используя концепцию «объекта». Объект имеет состояние (данные) и поведение (код). Объекты могут соответствовать вещам, найденным в реальном мире. Так, например, графическая программа будет иметь такие объекты, как круг , квадрат , меню . Система онлайн-покупок будет иметь такие объекты, как корзина покупок, клиент, продукт . Система покупок будет поддерживать такие действия, как размещение заказа , оплата и предложение скидок . Объекты спроектированы как иерархии классов. Так, например, в системе покупок могут быть классы высокого уровня, такие как электроника , кухонные товары и книги . Могут быть дополнительные усовершенствования, например, в электронных продуктах : проигрыватель компакт-дисков, проигрыватель DVD и т. д. Эти классы и подклассы соответствуют наборам и подмножествам в математической логике. [5] [6]

Специализированные объекты [ править ]

Важным понятием для объектов является шаблон проектирования . Шаблон проектирования предоставляет шаблон многократного использования для решения распространенной проблемы. Следующие описания объектов являются примерами некоторых наиболее распространенных шаблонов проектирования объектов. [7]

  • Функциональный объект : объект с одним методом (в C++ этим методом будет оператор функции «operator()»), который действует во многом как функция (например, указатель C/C++ на функцию).
  • Неизменяемый объект : объект, состояние которого установлено в фиксированном состоянии во время создания и которое не изменяется впоследствии.
  • Первоклассный объект : объект, который можно использовать без ограничений.
  • Объект-контейнер : объект, который может содержать другие объекты.
  • Фабричный объект : объект, целью которого является создание других объектов.
  • Метаобъект : объект, из которого могут быть созданы другие объекты (сравните с классом , который не обязательно является объектом).
  • Объект-прототип : специализированный метаобъект, из которого путем копирования могут быть созданы другие объекты.
  • Объект Бога : объект, который знает или делает слишком много (это пример антишаблона ) .
  • Одиночный объект : объект, который является единственным экземпляром своего класса за время существования программы.
  • Объект фильтра : объект, который получает поток данных в качестве входных данных и преобразует его в выходные данные объекта. Часто входные и выходные потоки представляют собой потоки символов, но это также могут быть потоки произвольных объектов. Обычно они используются в оболочках, поскольку скрывают существующую реализацию с помощью абстракции, необходимой на стороне разработчика.

Распределенные объекты [ править ]

Объектно-ориентированный подход — это не просто модель программирования. Его можно с тем же успехом использовать в качестве языка определения интерфейсов для распределенных систем. Объекты в модели распределенных вычислений , как правило, более детализированы, долговечны и более ориентированы на обслуживание, чем объекты программирования.

Стандартным методом упаковки распределенных объектов является использование языка определения интерфейса (IDL). IDL скрывает от клиента все детали объекта распределенного сервера. Подробные сведения о том, на каком компьютере находится объект, какой язык программирования он использует, какую операционную систему и другие проблемы, специфичные для платформы. IDL также обычно является частью распределенной среды, которая единообразным образом предоставляет такие услуги, как транзакции и сохранение, для всех объектов. Двумя наиболее популярными стандартами для распределенных объектов являются Object Management Group и стандарт CORBA DCOM . Microsoft [8]

Помимо распределенных объектов, был предложен ряд других расширений базовой концепции объекта для обеспечения распределенных вычислений:

  • Объекты протокола — это компоненты стека протоколов , которые заключают сетевое взаимодействие в объектно-ориентированный интерфейс.
  • Реплицированные объекты — это группы распределенных объектов (называемых репликами ), которые используют распределенный многосторонний протокол для достижения высокой согласованности между своими внутренними состояниями и скоординированно отвечают на запросы. Примеры включают отказоустойчивые объекты CORBA .
  • Живые распределенные объекты (или просто живые объекты ) [9] обобщить концепцию реплицируемого объекта на группы реплик, которые могут внутренне использовать любой распределенный протокол, что, возможно, приведет лишь к слабой согласованности между их локальными состояниями.

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

Семантическая сеть [ править ]

Семантическая сеть, по сути, представляет собой структуру распределенных объектов. Двумя ключевыми технологиями семантической сети являются язык веб-онтологий (WOL) и структура описания ресурсов (RDF). RDF предоставляет возможность определять базовые объекты — имена, свойства, атрибуты, отношения — которые доступны через Интернет. OWL добавляет более богатую объектную модель, основанную на теории множеств, которая предоставляет дополнительные возможности моделирования, такие как множественное наследование .

Объекты OWL не похожи на стандартные крупномасштабные распределенные объекты, доступ к которым осуществляется через язык определения интерфейса. Такой подход не подходит для Интернета, поскольку Интернет постоянно развивается и стандартизации одного набора интерфейсов добиться сложно. Объекты OWL, как правило, похожи на объекты, используемые для определения моделей предметной области приложения в таких языках программирования, как Java и C++ .

Однако существуют важные различия между объектами OWL и традиционными объектами объектно-ориентированного программирования. Традиционные объекты компилируются в статические иерархии, обычно с одинарным наследованием, но объекты OWL являются динамическими. Объект OWL может изменить свою структуру во время выполнения и стать экземпляром новых или других классов.

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

Объекты OWL на самом деле больше всего похожи на объекты в языках фреймов искусственного интеллекта , таких как KL-ONE и Loom.

В следующей таблице традиционные объекты объектно-ориентированных языков программирования, таких как Java или C++, сравниваются с объектами семантической сети: [10] [11]

ООП-объекты Семантические веб-объекты
Классы рассматриваются как типы экземпляров. Классы рассматриваются как совокупности индивидов.
Экземпляры не могут менять свой тип во время выполнения. Членство в классе может измениться во время выполнения.
Список классов полностью известен во время компиляции и не может измениться после этого. Классы можно создавать и изменять во время выполнения.
Компиляторы используются во время сборки. Ошибки времени компиляции указывают на проблемы. Резонеры можно использовать для классификации и проверки согласованности во время выполнения или во время сборки.
Классы кодируют большую часть своего значения и поведения посредством императивных функций и методов. Классы выражают свое значение явно в терминах операторов OWL. Никакой императивный код не может быть прикреплен.
Экземпляры анонимны, поскольку к ним невозможно легко обратиться извне выполняющейся программы. Все именованные ресурсы RDF и OWL имеют уникальный URI, по которому на них можно ссылаться.
Закрытый мир: если информации недостаточно, чтобы доказать истинность утверждения, оно считается ложным. Открытый мир: если информации недостаточно, чтобы доказать истинность утверждения, оно может быть истинным или ложным. [12]

См. также [ править ]

Ссылки [ править ]

  1. ^ Оппель, Энди (2005). SQL демистифицирован . МакГроу Хилл. п. 7. ISBN  0-07-226224-9 .
  2. ^ Габриэль, Ричард; Линда Г. ДеМичи (1987). «Объектная система Common Lisp: обзор». ECOOP'87 Европейская конференция по объектно-ориентированному программированию (PDF) . Конспекты лекций по информатике. Том. 276. с. 151. Бибкод : 1987LNCS..276..151D . дои : 10.1007/3-540-47891-4_15 . ISBN  978-3-540-18353-2 .
  3. ^ Вегнер, Питер (декабрь 1987 г.). Мейровиц, Норман (ред.). «Размеры объектно-ориентированного языкового проектирования». Материалы конференции OOPSLA'87 . 22 (12): 168–182. дои : 10.1145/38807.38823 .
  4. ^ Барби, С; М. Кемпе; А. Штромайер (1993). «Объектно-ориентированное программирование на Ada 9X» . Проект технического отчета . Лаборатория программной инженерии Швейцарского федерального технологического института в Лозанне . Проверено 15 декабря 2013 г. Сама Ада 83 обычно не считается объектно-ориентированной; скорее, согласно терминологии Вегнера [Weg 87], его называют объектно-ориентированным, поскольку он обеспечивает лишь ограниченную форму наследования и лишен полиморфизма.
  5. ^ Якобсен, Ивар; Магнус Кристерсон; Патрик Йонссон; Гуннар Овергаард (1992). Объектно-ориентированная разработка программного обеспечения . Аддисон-Уэсли ACM Press. ISBN  0-201-54435-0 .
  6. ^ «Что такое объект?» . oracle.com . Корпорация Оракл . Проверено 13 декабря 2013 г.
  7. ^ Мартин, Роберт К. «Принципы проектирования и шаблоны проектирования» (PDF) . Архивировано из оригинала (PDF) 6 сентября 2015 года . Проверено 28 апреля 2017 г.
  8. ^ Орфали, Роберт (1996). Основное руководство по выживанию клиента/сервера . Нью-Йорк: Wiley Computer Publishing. стр. 399–403 . ISBN  0-471-15325-7 .
  9. ^ Островски К., Бирман К., Долев Д. и Анн Дж. (2008). «Программирование с использованием живых распределенных объектов», Материалы 22-й Европейской конференции по объектно-ориентированному программированию , Пафос, Кипр, 7–11 июля 2008 г., Дж. Витек, редактор, Конспекты лекций по информатике , том. 5142, Springer-Verlag, Берлин, Гейдельберг, 463-489, http://portal.acm.org/citation.cfm?id=1428508.1428536 .
  10. ^ Бернерс-Ли, Тим; Джеймс Хендлер; Ора Лассила (17 мая 2001 г.). «Семантическая сеть. Новая форма веб-контента, имеющая смысл для компьютеров, откроет революцию новых возможностей» . Научный американец . 284 : 34–43. doi : 10.1038/scientificamerican0501-34 . Архивировано из оригинала 24 апреля 2013 года.
  11. ^ Кнублаух, Хольгер; Оберле, Дэниел; Тетлоу, Фил; Уоллес, Эван (9 марта 2006 г.). «Учебник по семантической сети для разработчиков объектно-ориентированного программного обеспечения» . W3C . Проверено 30 июля 2008 г.
  12. ^ Таблица взята из таблиц: http://www.w3.org/2001/sw/BestPractices/SE/ODSD/.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 0AEF5C2F5F0FA9BA115C440F4D10D334__1716778620
URL1:https://en.wikipedia.org/wiki/Object_(computer_science)
Заголовок, (Title) документа по адресу, URL1:
Object (computer science) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)