ОСНОВЫ ВИЗУАЛЬНОГО И КОМПОНЕНТНОГО ПРОГРАММИРОВАНИЯ

МНОГОКРАТНОЕ ИСПОЛЬЗОВАНИЕ ПРОГРАММНЫХ СИСТЕМ.

 

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

Многократное использование кода – это идеальный вариант передачи знаний. Труд, знания и опыт разработчика, заложенные в готовом продукте – программном коде, – передаются без потерь.

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

В рамках объектно-ориентированного подхода разрабатываются библиотеки классов. Использование библиотек классов повышает скорость разработки программ и экономит значительные усилия разработчиков. Однако нельзя сказать, что у них нет недостатков.

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

Библиотека классов должна быть написана на том же языке программирования, что и разрабатываемая программа.

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

Подобные соображения привели к появлению концепции компонента. Компонент – это программный модуль или объект, который готов для использования в качестве составного блока программы и которым можно визуально манипулировать во время разработки программ.

Чем отличается компонент от класса в библиотеке классов или функции в библиотеке функций?

Во-первых, компонент – это объект, т.е. компонент объединяет состояние и интерфейс. Состояние компонента может быть изменено только с помощью посылки сообщений (вызова операций).

Во-вторых, у компонента имеются два типа интерфейсов: интерфейс времени выполнения и интерфейс времени проектирования.

Интерфейс времени выполнения – это тот интерфейс, который управляет работой компонента.

Интерфейс времени проектирования – это интерфейс, который позволяет узнать, каков интерфейс времени выполнения. Интерфейс времени проектирования позволяет включать компоненты в современные среды программирования. Кроме того, интерфейс времени проектирования позволяет опрашивать компонент уже во время выполнения, динамически проверяя, какие методы и интерфейсы он реализует.

В-третьих, неважно, на каком языке программирования разработан компонент. Более того, совершенно не обязательно, чтобы компонент был реализован с помощью объектно-ориентированного языка программирования. Он должен удовлетворять определенным внешним характеристикам, но его реализация полностью закрыта. В идеале компонент должен быть нейтрален по отношению к языку программирования, т.е. его можно использовать в программе на любом языке, который поддерживает компонентную технологию.

Компонент может быть включен непосредственно в программу (локальный компонент) или существовать независимо, в том числе и на другом компьютере.

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

Другой вид компонентов – это независимые компоненты, существующие вне использующей их программы. Чаще всего такие компоненты применяются в распределенных системах, состоящих из большого числа ЭВМ, соединенных между собой сетью.

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

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

Компоненты легко вписываются в концепцию графического редактора, позволяя программисту манипулировать ими с той же легкостью, что и стандартными графическими элементами.

Но наличие графического интерфейса не является обязательным признаком компонента (в отличие от возможности визуального манипулирования). Компонент может реализовывать вычислительную задачу или связывать программу с другой подсистемой.

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