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

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

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

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

 • Конкатенативная
 • Векторная[en]
 • Метапрограммирование

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

 • Связанные темы

Программирование в крупном и мелком масштабе[en]
Модульность
Полиморфизм
Продолжения и CPS
Параллелизм и конкурентность

 • Методы и алгоритмы

Автоматное
Динамическое
Потоков данных
Событийно-ориентированное
Реактивное
Сервис-ориентированное

Компонентно-ориентированное программирование (англ. component-oriented programming, COP) — парадигма программирования, существенным образом опирающаяся на понятие компонента — независимого модуля исходного кода программы, предназначенного для повторного использования и развёртывания и реализующегося в виде множества языковых конструкций (например, «классов» в объектно-ориентированных языках программирования), объединённых по общему признаку и организованных в соответствии с определёнными правилами и ограничениями.





Применение

Компонентно-ориентированное программирование, в применении к объектно-ориентированным языкам, подразумевает набор ограничений, налагаемых на объектные механизмы — и нацеленных, прежде всего, на повышение надёжности больших программных комплексов.

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

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

История

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

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

Ситуация со внедрением компонентно-ориентированного подхода, — как ограничения для существующих парадигм программирования, — сходна с появлением структурного программирования, которое ограничивало неупорядоченные переходы управления с помощью оператора «GOTO» (затруднявшего анализ алгоритма программы для уже существующих языков и не привносившего новых конструкций).

Реализация в различных языках программирования

Компонентно-ориентированный подход может применяться во многих языках программирования, с помощью стандартных конструкций (таких как: классы, интерфейсы, пакеты, модули).

  • Существуют языки программирования, реализующие на конструктивном уровне компонентно-ориентированное программирование:
  • В рамках языка «Java» — компонентно-ориентированное программирование реализуется посредством компонентов, называемых «JavaBeans», поддержанных в одной из ранних спецификаций языка;
  • В платформе «.NET» — реализован компонентно-ориентированный подход, обеспечивающий создание и повторное использование компонентов для любого языка программирования, поддерживаемого платформой.

Напишите отзыв о статье "Компонентно-ориентированное программирование"

Примечания

  1. [www.inr.ac.ru/~info21/info/qtocop.htm Что такое компонентно-ориентированное программирование (краткая справка)] (рус.). Проверено 25 октября 2010. [www.webcitation.org/65QCAgBgh Архивировано из первоисточника 13 февраля 2012].
  2. 1 2 [www.soft-portal.com/ru.php/001/00001446.HTM Архив эхоконференции RU.PHP]

Ссылки

  • С.В. Зыков. [www.intuit.ru/department/se/tppobj/17/ Лекция: Компонентное программирование в .NET / Введение в теорию программирования. Объектно-ориентированный подход]. intuit.ru. Проверено 25 октября 2010. [www.webcitation.org/65QCBDDs1 Архивировано из первоисточника 13 февраля 2012].
  • [www.infoq.com/news/2008/05/cells-components-for-rails Rails Cells: Компонентно-Ориентированное Программирование для Rails] (англ.)
  • [oberoncore.ru/library/component_soft К. Пфистер «Компонентное программное обеспечение»] (Pfister C. «Component Software»)
  • C. Szyperski. Component Software — Beyond Object-Oriented Programming. Addison- Wesley, 1998 ISBN 978-0-201-17888-3


Отрывок, характеризующий Компонентно-ориентированное программирование

– Но я думаю, – сказала вдруг соскучившаяся Элен с своей обворожительной улыбкой, – что я, вступив в истинную религию, не могу быть связана тем, что наложила на меня ложная религия.
Directeur de conscience [Блюститель совести] был изумлен этим постановленным перед ним с такою простотою Колумбовым яйцом. Он восхищен был неожиданной быстротой успехов своей ученицы, но не мог отказаться от своего трудами умственными построенного здания аргументов.
– Entendons nous, comtesse, [Разберем дело, графиня,] – сказал он с улыбкой и стал опровергать рассуждения своей духовной дочери.


Элен понимала, что дело было очень просто и легко с духовной точки зрения, но что ее руководители делали затруднения только потому, что они опасались, каким образом светская власть посмотрит на это дело.
И вследствие этого Элен решила, что надо было в обществе подготовить это дело. Она вызвала ревность старика вельможи и сказала ему то же, что первому искателю, то есть поставила вопрос так, что единственное средство получить права на нее состояло в том, чтобы жениться на ней. Старое важное лицо первую минуту было так же поражено этим предложением выйти замуж от живого мужа, как и первое молодое лицо; но непоколебимая уверенность Элен в том, что это так же просто и естественно, как и выход девушки замуж, подействовала и на него. Ежели бы заметны были хоть малейшие признаки колебания, стыда или скрытности в самой Элен, то дело бы ее, несомненно, было проиграно; но не только не было этих признаков скрытности и стыда, но, напротив, она с простотой и добродушной наивностью рассказывала своим близким друзьям (а это был весь Петербург), что ей сделали предложение и принц и вельможа и что она любит обоих и боится огорчить того и другого.
По Петербургу мгновенно распространился слух не о том, что Элен хочет развестись с своим мужем (ежели бы распространился этот слух, очень многие восстали бы против такого незаконного намерения), но прямо распространился слух о том, что несчастная, интересная Элен находится в недоуменье о том, за кого из двух ей выйти замуж. Вопрос уже не состоял в том, в какой степени это возможно, а только в том, какая партия выгоднее и как двор посмотрит на это. Были действительно некоторые закоснелые люди, не умевшие подняться на высоту вопроса и видевшие в этом замысле поругание таинства брака; но таких было мало, и они молчали, большинство же интересовалось вопросами о счастии, которое постигло Элен, и какой выбор лучше. О том же, хорошо ли или дурно выходить от живого мужа замуж, не говорили, потому что вопрос этот, очевидно, был уже решенный для людей поумнее нас с вами (как говорили) и усомниться в правильности решения вопроса значило рисковать выказать свою глупость и неумение жить в свете.
Одна только Марья Дмитриевна Ахросимова, приезжавшая в это лето в Петербург для свидания с одним из своих сыновей, позволила себе прямо выразить свое, противное общественному, мнение. Встретив Элен на бале, Марья Дмитриевна остановила ее посередине залы и при общем молчании своим грубым голосом сказала ей:
– У вас тут от живого мужа замуж выходить стали. Ты, может, думаешь, что ты это новенькое выдумала? Упредили, матушка. Уж давно выдумано. Во всех…… так то делают. – И с этими словами Марья Дмитриевна с привычным грозным жестом, засучивая свои широкие рукава и строго оглядываясь, прошла через комнату.
На Марью Дмитриевну, хотя и боялись ее, смотрели в Петербурге как на шутиху и потому из слов, сказанных ею, заметили только грубое слово и шепотом повторяли его друг другу, предполагая, что в этом слове заключалась вся соль сказанного.
Князь Василий, последнее время особенно часто забывавший то, что он говорил, и повторявший по сотне раз одно и то же, говорил всякий раз, когда ему случалось видеть свою дочь.
– Helene, j'ai un mot a vous dire, – говорил он ей, отводя ее в сторону и дергая вниз за руку. – J'ai eu vent de certains projets relatifs a… Vous savez. Eh bien, ma chere enfant, vous savez que mon c?ur de pere se rejouit do vous savoir… Vous avez tant souffert… Mais, chere enfant… ne consultez que votre c?ur. C'est tout ce que je vous dis. [Элен, мне надо тебе кое что сказать. Я прослышал о некоторых видах касательно… ты знаешь. Ну так, милое дитя мое, ты знаешь, что сердце отца твоего радуется тому, что ты… Ты столько терпела… Но, милое дитя… Поступай, как велит тебе сердце. Вот весь мой совет.] – И, скрывая всегда одинаковое волнение, он прижимал свою щеку к щеке дочери и отходил.