Компонентно-ориентированное программирование () — парадигма программирования, основанная на использовании компонентов — независимых модулей исходного кода программы, предназначенного для повторного использования и развёртывания и реализующегося в виде множества языковых конструкций (например, «классов» в объектно-ориентированных языках программирования), объединённых по общему признаку и организованных в соответствии с определёнными правилами и ограничениями.
История Компонентно-ориентированный подход появился в 1987 году, когда Никлаус Вирт предложил для языка «Оберон» паттерн написания блоков. Паттерн был предложен в процессе анализа проблемы «хрупких» базовых классов, возникающей при построении объёмной иерархии классов. Паттерн заключался в том, что компонент компилируется отдельно от других, а на стадии выполнения необходимые компоненты подключаются динамически.
В 1989 году Бертран Мейер предложил идею единого взаимодействия между вызываемым и вызывающим компонентами. Концепция была реализована в технологиях CORBA, COM, SOAP. Впоследствии поддержка со стороны языка была реализована в Компонентном Паскале.
Ситуация с внедрением компонентно-ориентированного подхода (как дополнительного архитектурного ограничения для существующих парадигм программирования) аналогична с появлением структурного программирования, которое ограничивало неупорядоченные переходы управления с помощью оператора «GOTO», затруднявшего чтение кода программы для уже существующих языков и не привносившего новых конструкций.
Реализация в различных языках программирования Компонентно-ориентированный подход применяется в различных языках программирования посредством стандартных конструкций, таких как классы, интерфейсы, пакеты и модули.
Существуют языки программирования, реализующие компонентно-ориентированное программирование на уровне языка: Оберон — частичная поддержка; Компонентный Паскаль; Go — частичная поддержка, реализованная через механизм сборки приложений; Rust — частичная поддержка через систему пакетов (crates) как единиц сборки.
В рамках языка Java — компонентно-ориентированное программирование поддерживает компонентную модель JavaBeans, поддержанных в одной из ранних спецификаций языка; На платформе .NET реализована компонентная модель, обеспечивающая создание, распространение и повторное использование компонентов, совместимых со всеми поддерживаемыми языками.
Примечания
Ссылки
Rails Cells: Компонентно-Ориентированное Программирование для Rails К. Пфистер «Компонентное программное обеспечение» (Pfister C. «Component Software») C. Szyperski. Component Software — Beyond Object-Oriented Programming. Addison- Wesley, 1998 ISBN 978-0-201-17888-3
*