Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Объектно ориентированное программирование.doc
Скачиваний:
37
Добавлен:
03.05.2015
Размер:
288.77 Кб
Скачать

Объектно ориентированное программирование

Парадигмы программирования

  • Агентно-ориентированная

  • Компонентно-ориентированная

  • Конкатенативная

  • Декларативная (контрастирует с Императивной)

    • Ограничениями

    • Функциональная

    • Потоком данных

      • Таблично-ориентированная (электронные таблицы)

      • Реактивная

    • Логическая

  • Событийно-ориентированная

    • Сервис-ориентированная

  • Комбинаторная

  • Императивная (контрастирует с Декларативной)

    • Процедурная

  • Предметно-ориентированная

  • Метапрограммирование

    • Автоматизация процесса программирования

    • Обобщённое программирование

    • Рефлексивно-ориентированная

    • Итерационная

  • Параллельная

  • Структурная

    • Модульная

    • Рекурсивная

    • Объектно-ориентированная

      • Автоматная

      • Разделение ответственности:

        • Аспектно-ориентированная

        • Субъектно-ориентированная

      • Прототип-ориентированная

 

Объе́ктно-ориенти́рованное, или объектное, программи́рование (в дальнейшем ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов. В случае языков с прототипированием вместо классов используются объекты-прототипы.

Содержание

 1 История

  • 2 Основные понятия

  • 3 Определение ООП и его основные концепции

    • 3.1 Сложности определения

    • 3.2 Концепции

  • 4 Особенности реализации

  • 5 Подходы к проектированию программ в целом

  • 6 Родственные методологии

    • 6.1 Компонентное программирование

    • 6.2 Прототипное программирование

    • 6.3 Класс-ориентированное программирование

  • 7 Производительность объектных программ

  • 8 Критика ООП

  • 9 Объектно-ориентированные языки

  • 10 Примечания

  • 11 См. также

  • 12 Литература

  • 13 Ссылки

История

ООП возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны. Для дальнейшего развития объектно-ориентированного программирования часто большое значение имеют понятия события (так называемое событийно-ориентированное программирование) и компонента (компонентное программирование, КОП).

Формирование КОП от ООП произошло, как случилось формирование модульного от процедурного программирования: процедуры сформировались в модули — независимые части кода до уровня сборки программы, так объекты сформировались в компоненты — независимые части кода до уровня выполнения программы. Взаимодействие объектов происходит посредством сообщений. Результатом дальнейшего развития ООП, по-видимому, будет агентно-ориентированое программирование, где агенты — независимые части кода на уровне выполнения. Взаимодействие агентов происходит посредством изменения среды, в которой они находятся.

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

Первым языком программирования, в котором были предложены принципы объектной ориентированности, была Симула. В момент своего появления (в 1967 году), этот язык программирования предложил поистине революционные идеи: объекты, классы, виртуальные методы и др., однако это всё не было воспринято современниками как нечто грандиозное. Тем не менее, большинство концепций были развиты Аланом Кэйем и Дэном Ингаллсом в языке Smalltalk. Именно он стал первым широко распространённым объектно-ориентированным языком программирования.

В настоящее время количество прикладных языков программирования (список языков), реализующих объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам. В области системного программирования до сих пор применяется парадигма процедурного программирования, и общепринятым языком программирования является язык C. Хотя при взаимодействии системного и прикладного уровней операционных систем заметное влияние стали оказывать языки объектно-ориентированного программирования. Например, одной из наиболее распространенных библиотек мультиплатформенного программирования является объектно-ориентированная библиотека Qt, написанная на языке C++.