Erich Gamma Ralph Johnson Richard Helm John Vlissides Addison-Wesley



Download 6,32 Mb.
Pdf ko'rish
bet200/273
Sana02.03.2022
Hajmi6,32 Mb.
#479589
1   ...   196   197   198   199   200   201   202   203   ...   273
Bog'liq
Priemioop

Паттерн Iterator
Применимость
Используйте паттерн итератор:
а для доступа к содержимому агрегированных объектов без раскрытия их
внутреннего представления;
а для поддержки нескольких активных обходов одного и того же агрегиро-
ванного объекта;
а для предоставления единообразного интерфейса с целью обхода различных
агрегированных структур (то есть для поддержки полиморфной итерации).
Структура
return new Concretelterator(this)
Участники
a Iterator
- итератор:
- определяет интерфейс для доступа и обхода элементов;
a
 Concretelterator
- конкретный итератор:
- реализует интерфейс класса Iterator;
- следит за текущей позицией при обходе агрегата;
a
 Aggregate
- агрегат:
- определяет интерфейс для создания объекта-итератора;
a
 ConcreteAggregate
- конкретный агрегат:
- реализует интерфейс создания итератора и возвращает экземпляр подхо-
дящего класса Concretelterator.
Отношения
Concretelterator отслеживает текущий объект в агрегате и может вычис-
лить идущий за ним.
(
Результаты
У паттерна итератор есть следующие важные особенности:
а
 поддерживает различные виды обхода агрегата.
Сложные агрегаты можно об-
ходить по-разному. Например, для генерации кода и семантических проверок


Паттерны поведения
нужно обходить деревья синтаксического разбора. Генератор кода может об-
ходить дерево во внутреннем или прямом порядке. Итераторы упрощают
изменение алгоритма обхода - достаточно просто заменить один экземпляр
итератора другим. Для поддержки новых видов обхода можно определить
и подклассы класса Iterator ;
а
 итераторы упрощают интерфейс класса Aggregate.
Наличие интерфейса
для обхода в классе Iterator делает излишним дублирование этого ин-
терфейса в классе Aggregate. Тем самым интерфейс агрегата упрощается;
а
 одновременно для данного агрегата может быть активно несколько обходов.
Итератор следит за инкапсулированным в нем самом состоянием обхода. По-
этому одновременно разрешается осуществлять несколько обходов агрегата.

Download 6,32 Mb.

Do'stlaringiz bilan baham:
1   ...   196   197   198   199   200   201   202   203   ...   273




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish