Итератор - Большая Энциклопедия Нефти и Газа, статья, страница 4
Русский человек способен тосковать по Родине, даже не покидая ее. Законы Мерфи (еще...)

Итератор

Cтраница 4


Метод фабрики Create Iterator весьма прост. Он создает соответствующий объект-итератор, передавая себя в его конструктор как параметр. Конструктор итератора сохраняет объект дерева для последующих ссылок и инициализирует его позицию в дереве. Следующий код демонстрирует метод фабрики Create-Ite rator и конструктор для базового класса TIterator.  [46]

47 Использование итератора для косвенной связи со списком. [47]

Итератор ( iterator) обеспечивает альтернативный метод обхода элементов в объекте агрегата. Объект итератора обращается к агрегату для обхода его элементов и определяет порядок, в котором проверяются эле менты. Множество классов итератора может быть сопоставлено с классом агрегата, чтобы обеспечить различный порядок обход а эле ментов.  [48]

В этом примере итераторы и класс дерева также определены в одном модуле. Класс дерева объявляет метод Cre ate Ite rator, который возвращает объект-итератор. Все классы итераторов используют ссылки на класс дерева и должны быть определены в одном объявлении типа, как и все классы Delphi, которые содержат циклические ссылки друг на друга.  [49]

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

51 Использование итератора для косвенной связи со списком. [51]

Итератор должен знать порядок записи элементов, чтобы определить последовательность их обхода. Если агрегат - это связанный список, то объект итератора должен знать, что элементы сохранены в связанном списке, иуметьпо этому списку перемещаться. Так как итератору известны детали внутренней организации списка, он нарушает инкапсуляцию агрегата.  [52]

Такие устройства имеют в своем составе средства распознавания речевых сигналов ( S. Некоторые из них способны распознавать и произносить слова из предварительно определенного словаря, другие настраиваются на определенного диктора. При произнесении итератором какого-либо словарного слова соответствующее ему символьное отображение выводится на экран и может быть проконтролировано. Процесс распознавания речи основывается на сопоставлении речевого фрагмента со словами их хранимой словарной таблицы. Таблица формируется и модифицируется е использованием средств визуального отображения, снабженных клавиатурой. Для этого элемент данных или системная команда записывается б память и соответствующее слово произносится несколько раз. Произнесенное слово затем анализируется и преобразуется в определенную двоичную комбинацию, которая запоминается в словарной таблице.  [53]

Многие классы применяются совместно с другими. Например, класс-итератор тесно взаимодействует с классом агрегатом. Чтобы выполнить свою задачу, итератор должен наруишть инкапсуляцию агрегата. Хотя для этих связанных классов такое иногда допустимо, другие классы этого делать не должны.  [54]

Несмотря на то, что продукционные правила обеспечивают достаточную гибкость для описания реакций системы на изменения окружающего мира, в некоторых случаях, когда необходимо выполнить жесткую последовательность действий ( например, запуск или остановку комплекса оборудования), более предпочтительным является процедурный подход. Язык программирования, используемый в G2 для представления процедурных знаний, является достаточно близким родственником Паскаля. Еще одна интересная особенность языка - итераторы, позволяющие организовать цикл над множеством экземпляров класса. Перечисленные свойства языка позволяют системе одновременно выполнять множество различных процедур или множество копий одной и той же процедуры для множества различных объектов.  [55]

56 Использование итератора для косвенной связи со списком. [56]

Вместо того чтобы каждый класс, который должен проверять элементы агрегата, реализовывал обход самостоятельно, можно сопоставить класс-итератор с классом-агрегатом. Итератор должен содержать простые процедуры MoveFirst ( Переместиться в начало), MoveNext ( Переместиться на следующий элемент), EndOfList ( Переместиться в конец списка) и Cut rent Item ( Текущий элемент), чтобы обеспечить косвенный до ступ к списку. Новые классы могут включать в себя экземпляр класса итератора и использовать его методы для обхода элементов агрегата.  [57]



Страницы:      1    2    3    4