Научная статья на тему 'АНАЛИЗ КОМПОНЕНТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ'

АНАЛИЗ КОМПОНЕНТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
118
22
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОМПОНЕНТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ / ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ / ИНТЕРФЕЙС / ПАТТЕРН / COMPONENT-ORIENTED PROGRAMMING / OBJECT-ORIENTED PROGRAMMING / INTERFACE / PATTERN

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Бучилин А.В., Булатникова И.Н.

Статья посвящена анализу компонентно-ориентированного программирования (КОП). Рассмотрены практические подходы решения задач с помощью КОП.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

COMPONENT-ORIENTED PROGRAMMING ANALYSIS

The article is devoted to the analysis of component-oriented programming (COP). Practical approaches to solving problems using the COP are considered.

Текст научной работы на тему «АНАЛИЗ КОМПОНЕНТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ»

9. Шадуева Э.Ч., Нагоев А.Б. Разработка и внедрение системы антикризисного управления сельскохозяйственным предприятием на основе кластерного подхода // Экономические науки. 2016. №97. С. 23-27.

10. Pavlov A. J., Batova V. N., Kovalyova N. N., Kolesnikov A. V., Sokolov A. Y., Soboleva Y. V. Problems of state regulation of innovation policy in the Russian Federation and foreign countries // Journal of Advanced Research in Law and Economics. 2015. V. 6. № 4. С. 802-821.

УДК 004.4

Бучилин А. В. студент

Кубанский Государственный Технологический Университет Булатникова И. Н.

Россия, г. Краснодар Buchilin A.V. student

Kuban State Technological University

Bulatnikova I.N.

Russia, Krasnodar АНАЛИЗ КОМПОНЕНТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ COMPONENT-ORIENTED PROGRAMMING ANALYSIS

Аннотация. Статья посвящена анализу компонентно-ориентированного программирования (КОП). Рассмотрены практические подходы решения задач с помощью КОП.

The article is devoted to the analysis of component-oriented programming (COP). Practical approaches to solving problems using the COP are considered.

Ключевые слова. Компонентно-ориентированное программирование, объектно-ориентированное программирование, интерфейс, паттерн.

Component-oriented programming, object-oriented programming, interface, pattern.

Известно, что компонентно-ориентирование программирование (КОП) есть объектно-ориентированное программирование (ООП), которое подчинено требованиям безопасности «старого» структурного и модульного программирования примерно в том виде, в котором эти требования были реализованы в классическом Модуле-2, то есть представляли собой набор модулей, которые возможно компилировать раздельно, а также использовать повторно.

Родоначальником данной системы был Никлаус Вирт. Создавая компонентно-ориентированный подход, он хотел решить достаточно серьёзную проблему объектно-ориентированного подхода - «хрупкость» базовых классов, которая возникает при построении объёмной иерархии классов. Например, если у нас есть объект «Персонаж», то с точки зрения

ООП - это один большой класс, который, возможно, наследуется от чего-то (рис. 1).

class Employer : Person {

Рисунок 1 - класс в ООП

С точки зрения КОП - это набор компонентов, которые составляют объект «персонаж». Например, характеристики персонажа - компонент «Stats», управление персонажем - «CharacterController», анимации персонажа - «CharacterA^

Рисунок 2 - структура компонентов в КОП

Также КОП позволяет использовать повторно код. В отличие от ООП, в КОП повторное использование кода - совершенно естественное занятие, так как компоненты позволяют программистам разрабатывать конечный продукт «кирпичиками», где совершенно необязательно вдаваться в детали реализации конкретного компонента.

Согласованность пользовательского интерфейса в КОПе - ещё одно преимущество. При условии использования программистами одного и того же визуального компонента интерфейс будет исполнен в едином стиле. При этом, если нам понадобится изменить вид одного из компонентов, мы изменим его вид везде, где он используется. Кроме этого, компоненты позволяют разрабатывать части интерфейса независимо, а изменения не затрагивают код модулей.

Возможность быстрой и продуктивной разработки программ -преимущество, которое выражено не только программно, но и экономически. Мало того, что при достаточном накоплении компонентов возможно действительно быстро создавать визуальные интерфейсы программ, фактически, не написав более ни строчки, но и программистам проще друг другу объяснить, как использовать компонент. Ещё и уменьшается стоимость разработки программ до 70%.

При этом данный подход к программированию вовсе не лишён минусов. За всё это удовольствие, которое описано выше, придётся платить объектно-ориентированным подходом. Если, например, у нас есть необходимость создания компонента для отображения цветных строк, мы с помощью ООП создаём наследника класса ListBox, перекрыв метод Paint, реализуя отрисовку цветных строк. Возможность реализовать событие onPaint и не создавать никаких классов подталкивает многих программистов к использованию событий в ущерб объектно-ориентированному подходу. Но именно, что «подталкивает», ибо никто не мешает и не запрещает создать новый компонент, который умеет рисовать цветные строки на основе существующего компонента ListBox. И подобный подход будет наиболее верным по причине того, что подобные компоненты можно использовать повторно. Ещё один минус - необходимость иметь гибкие компоненты. Нет никакого смысла писать компонент, рисующий только строки красного цвета. Такой компонент будет очень сложно использовать ещё где-то, кроме как в узконаправленной программе, для которой и создавался подобный компонент. Имеет смысл создать компонент, который рисует строки заданного цвета, а сам цвет вынести в его свойства. Вот такой компонент будет более функционален и в дальнейшем сократит время на разработку, хотя изначальное написание требует несколько больших усилий, нежели разработка компонента только для одного цвета.

На данный момент компонентно-ориентированное программирование реализовано в таких современных языках, как Java, где реализация происходит посредством компонентов, именуемых «JavaBeans», поддержанных в одной из ранних спецификаций языка. Кроме этого в платформе . NET также используется данный подход для создания и повторного использования компонентов для языков, которые поддерживаются платформой.

Использованные источники:

1. Агуров П. В. C#. Разработка компонентов в MS Visual Studio 2005/2008. -СПб.: БХВ-Петербург, 2008. — 480 е.: ил.

2. Добрынин В. Ю. Технологии компонентного программирования. - СПб.: Издательство СПбГУ, 2004.

3. https://ru.wikipedia.org

4. https://tproger.ru/

i Надоели баннеры? Вы всегда можете отключить рекламу.