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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Парадигмы программирования
 • Императивная (контрастирует с Декларативной)
Процедурная
Структурная
Модульная
Аспектно-ориентированная
Объектно-ориентированная
Агентно-ориентированная
Компонентно-ориентированная
Прототипно-ориентированная
Обобщённое программирование

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

Функциональная
Чистая функциональная
Аппликативная
Комбинаторная
Основанная на продолжениях
В терминах Рефал-машины
Логическая
Ограничениями
Потоком данных

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

Языково-ориентированная
Пользовательская[en]
Автоматизация процесса программирования
Рефлексивное

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

Реактивная
Сервис-ориентированная
 • Автоматная
п·о·р

Компонентно ориентированное программирование (англ. component-oriented programming, COP) — парадигма программирования, ключевой фигурой которой является компонент.

Развитие КОП[править | править вики-текст]

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

Ситуация, когда возникает новая парадигма программирования в качестве ограничения прежней, уже была, когда возникло структурное программирование для использования структур управления, исключающих неупорядоченные переходы управления с помощью оператора GOTO, затрудняющие анализ алгоритма программы.

История[править | править вики-текст]

В 1987 году[2] Никлаус Вирт, унифицировав, предложил для языка Оберон паттерн написания блоков. Блок, удовлетворяющий требованиям этого паттерна, называется компонентом. Данный паттерн сформировался при изучении проблемы хрупких базовых классов, возникающей при построении объемной иерархии классов. Паттерн заключался в том, что компонент компилируется отдельно от других, а на стадии выполнения необходимые компоненты подключаются динамически.

В 1989 году[2] Бертран Мейер предложил идею единого взаимодействия между вызываемым и вызывающим компонентами. Эта идея воплотилась в виде готовых решений: CORBA, COM, SOAP и протоколу JAVA. Впоследствии поддержка со стороны языка осуществилась в Компонентном Паскале.

Технологии[править | править вики-текст]

Отличия от ООП[править | править вики-текст]

  • Компонент — «независимый модуль программного кода, предназначенный для повторного использования и развертывания».
  • Может содержать «множественные классы».
  • Как правило, независим от конкретного языка.

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

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