Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Непейвода Н.Н. -> "Основания программирования " -> 49

Основания программирования - Непейвода Н.Н.

Непейвода Н.Н., Скопин И.Н. Основания программирования — Институт компьютерных исследований , 2002. — 919 c.
Скачать (прямая ссылка): osnovanprogramm2002.pdf
Предыдущая << 1 .. 43 44 45 46 47 48 < 49 > 50 51 52 53 54 55 .. 316 >> Следующая

3.5. ПРОГРАММИРОВАНИЕ ОТ СОБЫТИЙ
135
§ 3.5. ПРОГРАММИРОВАНИЕ ОТ СОБЫТИЙ
Есть довольно обширный круг задач, которые естественно описывать как совокупность реакций на события, возникаие в среде выполнения программы. Вообе говоря, так мо но трактовать лбу программу, обрабат -вающую данные: поступление очередного данного — это внешнее событие, требующее реакции, которая, как минимум, должна быть связана с вводом этого данного. Понятно, что такая трактовка далеко не всегда продуктивна.
о она оправдана, например, когда есть много собтий, порядок которых не определяет логику обработки, когда реакция на кадое собтие автономна, т. е. не зависит от реакции на другие события. бая характеристика подобных ситуаций сводится к трем условиям, которые можно считать определяющими для целесообразного применения стиля программирования от событий, или собтийно-ориентированного стиля программирования:
• процессы генерации событий отделены от процессов их обработки;
• процессы отработки разных реакций не зависят друг от друга;
• можно определить единый механизм установления контакта между событием и реакцией на него, никак не связанный с обработкой.
Косвенным признаком полезности собтийного стиля могут слу ить трудности декомпозиции решаемой задачи, при которой генерация и обработка рассматриваются объединенноеапример, в схеме программирования от состояний вполне мо но рассматривать в качестве собтий появление даннх, приводяих к смене состояний. днако здесь в кадом состоянии свои события, пусть да е они и одинаков с точки зрения генерации. Знание последовательности поступления событий на обработку необходимо для организации вычислений. бласть эффективного применения собтийного стиля программирования начинается именно там, где становится неудобным использовать граф перехода меду состояниями.
Стиль событийного программирования — это создание для каждого события собственной процедуры-обработчика. Порядок, в котором обработчики описываются в программе, не имеет никакого значения. Более того, они могут, а во многих случаях и долн быть приписан к разнм структур-нм единицам программы, в рамках которых только и осмыслена реакция на собтие. Как следствие, продуктивно разбивать реакци на собтие на части, за которые отвечают такие структурные единицы, и иметь несколько реакций (разных) структурных единиц на одно событие.
136
3.
актическу реакци на собтие, иными словами, вызов обработчика, нужно связывать не со структурными единицами текста программы — с ними связаны программы обработчиков, а не их вызовы, а с теми динамическими суностями, которые поро да тся при активизации этих структурнх единиц. По такой схеме организуются событийный механизм в рамках объектно-ориентированного программирования. Здесь обработчики, как и другие методы, приписаны к классам — структурным единицам текста программы, а вызовы обработчиков, включая проверку необходимости реагирования, осуествля т объект , которые явля тся экземплярами классов, т. е. структурными единицами процесса вполнения программ .
Когда имеется несколько реакций на одно и то е собтие, встает вопрос о порядке, в котором они должны выполняться. Постулат автономности реакций здесь уже не действует, поскольку речь идет не о разных событиях, а о распределении объединенной реакции по программным компонентам. рак-тические потребности работы в таких ситуациях мотивиру т особый стиль программирования: программирование от приоритетов (см. следуий параграф). В то е время вделяется ванй с практической точки зрения класс событийных программ с обособленными реакциями, который характеризуется тем, что разне реакции на одно собтие не конкуриру т меду собой: кадая динамическая структурная единица (например, объект) делает свое дело, связанное с событием, никак не пересекаясь с делами соседей.
ля этого класса мо ет бть построен очень простой механизм установления контакта между событием и реакцией, теперь — реакциями! Суть его в том, что организуется цикл опроса всех динамических структурнх единиц, которе в принципе могут отвечать за реакци на собтия. В кадой такой единице активизация реакции на собтие задается следуей схемой:
если для данного события должна быть выполнена реакция то обработчик этой реакции вызывается для исполнения // иначе в связи с событием данная структурная единица ничего не делает
онятия, введенные при объяснении собтийного программирования, иллюстрирует схема на рис. 3.5, на котором блоками с загнутыми углами изображены фрагменты текстов программ, а жирными стрелками — порождение экземпляров и событий. Из схемы видно, что одна и та же программа обработчика мо ет бть активизирована из разных динамических структурных единиц, а так е то, что одна и та е динамическая структурная единица мо ет в разные моменты вычислений реагировать или не реагировать на
3.5. ПРОГРАММИРОВАНИЕОТСОБЫТИЙ
137
Описание структурных единиц, предусматривающих реакцию на события:
Sl S2
if(rEi)hEi; if(rE2)hE2; if(rE3)hE3;
hE1
hE2
условия активизации реакций
rEi; hEi (i=1, 2, 3) локальны в Sl
Предыдущая << 1 .. 43 44 45 46 47 48 < 49 > 50 51 52 53 54 55 .. 316 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100