Реклама:
Кинг Д. Создание эффективного программного обеспечения

Рис. 2.15. Другая (неправильная) структура файла.

Итак, каждый компонент в структуре данных будет потенциально представлять компонент программы. Часто окажется полезным, чтобы специальный компонент программы представлял группу компонентов нижнего уровня, причем компоненты нижнего уровня фигурируют и сами по себе. В примере ФАЙЛА Г с рис. 2.13 это означает, что окончательная программа, которая будет обрабатывать ФАЙЛ ?> должна быть способна ссылаться на всю группу транзакций помимо каждой отдельной транзакции. Поэтому должны быть представлены и компонент ТЕЛО ФАЙЛА, и компонент ТРАНЗАКЦИЯ. Для получения такой структуры в корректном виде нужно строго применять следующее правило:

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

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

2.4. Структуры данных с точки зрения наблюдателя

Люди, изучающие методы использования баз данных, хорошо знают, что любое множество (или набор) данных может быть представлено несколькими разными способами в! зависимости от того, кто станет пользоваться этими дан-| ными и какие части данных следует считать более важны-1 ми, чем другие части. Эти различные «виды» данных называются логическими видами или подсхемами (см. [7]).

Как это может получиться? Рассмотрим заполненный пассажирами авиалайнер в трансконтинентальном полете. Во втором классе имеются ряды пассажиров, по десять мест в ряду. Каждый пассажир заказал одно из выбора трех блюд: цыпленка, бифштекс или рыбу. Команда обслуживания отвечает за сервировку и поэтому рассматривает пассажиров в виде последовательности рядов, причем каждым членом каждого ряда является «цыпленок», «бифштекс» или «рыба». (Обычно у команды не остается времени принимать во внимание какие-либо другие характеристики пассажиров. ) С точки зрения структур данных команда обслуживания рассматривает пассажиров второго класса так, как показано на рис. 2.16.

Кинг Д. Создание эффективного программного обеспечения

Рис. 2.16. Пассажиры второго класса с точки зрения команды обслуживания.

Теперь представим себе, что один из членов летного экипажа решил передохнуть и пройтись по салону второго класса, приглядываясь, есть ли в нем интересные пассажиры. Известно, что все по-настоящему интересные пассажиры находятся в первом классе. Однако предположим, что прогуливающийся по салону член экипажа не знает этого. Итак, он (или она) смотрит на каждого пассажира как на интересную или нет личность. Текущий взгляд этого члена экипажа на пассажиров показан на рис. 2.17.

Кинг Д. Создание эффективного программного обеспечения

Рис. 2.17. Пассажиры с точки зрения члена летного экипажа.

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


⇐ Предыдущая страница| |Следующая страница ⇒