Компонентно-ориентированное программирование
Компонентно-ориентированное программирование (англ. component-oriented programming, COP) — парадигма программирования, существенным образом опирающаяся на понятие компонента — независимого модуля программного кода, предназначенного для повторного использования и развёртывания, реализующегося в виде множества языковых конструкций (например, классов в объектно-ориентированных языках), объединённых по общему признаку и организованных в соответствии с определёнными правилами и ограничениями.
Компонентно-ориентированное программирование в применении к объектно-ориентированным языкам подразумевает набор ограничений, налагаемых на объектные механизмы, нацеленные, прежде всего, на повышения надёжности больших программных комплексов. Например, при применении неограниченного объектно-ориентированного подхода характерна проблема хрупких базовых классов — ситуация, когда изменить реализацию типа-предка невозможно, не нарушив корректность функционирования типов-потомков (даже при прежних интерфейсах его методов)[1], компонентно-ориентированный подход, позволяющий через понятие компонента объединить в группу связанные конструкции и определяющий схемы и правила для них, позволяет избежать подобного рода проблем.
Компонентно-ориентированный подход появился в 1987 году[2], когда Никлаус Вирт предложил для языка Оберон паттерн написания блоков. Данный паттерн сформировался при изучении проблемы хрупких базовых классов, возникающей при построении объемной иерархии классов. Паттерн заключался в том, что компонент компилируется отдельно от других, а на стадии выполнения необходимые компоненты подключаются динамически. В 1989 году[2] Бертран Мейер предложил идею единого взаимодействия между вызываемым и вызывающим компонентами. Эта идея воплотилась в виде готовых решений: CORBA, COM, SOAP. Впоследствии поддержка со стороны языка осуществилась в Компонентном Паскале.
Ситуация со внедрением компонентно-ориентированного подхода как ограничения для существующих парадигм программирования сходна с появлением структурного программирования, которое ограничивало неупорядоченные переходы управления с помощью оператора GOTO, затрудняющие анализ алгоритма программы для уже существующих языков без привнесения каких-либо новых конструкций. Компонентно-ориентированный подход может применяться во многих языках программирования с помощью стандартных конструкций, таких как классы, интерфейсы, пакеты, модули. При этом также существуют и языки программирования, реализующие на конструктивном уровне компонентно-ориентированное программирование — Оберон (ограниченно) и Компонентный Паскаль. В рамках языка Java компонентно-ориентированное программирование реализуется посредством JavaBeans, поддержанных в одной из ранних спецификаций языка. В платформе .Net реализован компонентно-ориентированный подход, обеспечивающий создание и повторное использование компонентов для любого языка программирования, поддерживаемого платформой.
Примечания[править | править вики-текст]
- ↑ Что такое компонентно-ориентированное программирование (краткая справка) (рус.). Проверено 25 октября 2010. Архивировано из первоисточника 13 февраля 2012.
- ↑ 1 2 Архив эхоконференции RU.PHP
Ссылки[править | править вики-текст]
- С.В. Зыков. Лекция: Компонентное программирование в .NET / Введение в теорию программирования. Объектно-ориентированный подход. intuit.ru. Проверено 25 октября 2010. Архивировано из первоисточника 13 февраля 2012.
- Rails Cells: Компонентно-Ориентированное Программирование для Rails (англ.)
- К. Пфистер «Компонентное программное обеспечение» (Pfister C. «Component Software»)
- C. Szyperski. Component Software — Beyond Object-Oriented Programming. Addison- Wesley, 1998 ISBN 978-0-201-17888-3
Для улучшения этой статьи желательно?:
|
Это заготовка статьи о программировании. Вы можете помочь проекту, дополнив её. |