Назва Назва


НазваНазва Назва
Дата конвертації10.04.2013
Розмір445 b.
ТипПрезентации



Назва

  • Назва

  • Ітератор / Iterator

  • Класифікація:

  • Патерн поведінки об’єктів

  • Призначення

  • Надає доступ до елементів контейнера, не розкриваючи його внутрішнього представлення

  • Відомий також під іменем

  • Курсор / Cursor



Складений об’єкт (контейнер) повинен надавати доступ до своїх елементів, не розкриваючи свою внутрішню структуру. При цьому перебирати елементи доводиться по-різному залежно від задачі.

  • Складений об’єкт (контейнер) повинен надавати доступ до своїх елементів, не розкриваючи свою внутрішню структуру. При цьому перебирати елементи доводиться по-різному залежно від задачі.



Створюється клас Iterator, який визначає інтерфейс для доступу до перебору та модифікації елементів.

  • Створюється клас Iterator, який визначає інтерфейс для доступу до перебору та модифікації елементів.



Iterator в java

  • Iterator в java





Iterator – ітератор

  • Iterator – ітератор

    • Визначає інтерфейс для доступу до обходу елементів
    • Зберігає посилання на об’єкт Implementator
  • ConcreteIterator – конкретний ітератор

    • Реалізує інтерфейс класу Iterator
    • Слідкує за поточною позицією при обході агрегату
  • Aggregate – агрегат

    • Визначає інтерфейс для створення об’єкта-ітератора
  • Concrete Aggregate – конкретний агрегат

    • Реалізує інтерфейс створення ітератора та повертає екземпляр необхідного класу ConcreteIterator


Об’єкт ConcreteIterator запам’ятовує поточний об’єкт в агрегаті та може визначити наступний за ним

  • Об’єкт ConcreteIterator запам’ятовує поточний об’єкт в агрегаті та може визначити наступний за ним



Iterator підтримує різні види обходу агрегата

  • Iterator підтримує різні види обходу агрегата

    • Для зміни способу обходу агрегату досить замінити один об’єкт ітератору іншим
    • Для підтримки нових видів обходу можна визначити підкласи Iterator
  • Спрощується інтерфейс класу Aggregate

    • Інтерфейс Iterator виноситься назовні із класу Aggregate
  • Для кожного агрегату можуть бути одночасно активними кілька обходів

    • Ітератор слідкує за інкапсульованим в ньому стані обходу


Необхідно доступатися до вмісту агрегатних об’єктів без розкриття їх внутрішньої структури

  • Необхідно доступатися до вмісту агрегатних об’єктів без розкриття їх внутрішньої структури

  • Необхідна підтримка кількох активних обходів одного і того ж агрегату

  • Слід представити єдиний інтерфейс для обходу різних складених структур



Який із учасників управляє ітерацією

  • Який із учасників управляє ітерацією

    • Якщо ітерацією управляє клієнт, то ітератор називається зовнішнім (активним), а якщо агрегат, то – внутрішнім (пасивним)
  • Що визначає алгоритм обходу

    • Алгоритм обходу може визначати сам агрегат, а в ітераторі зберігати лише стан обходу (такий ітератор називають курсором)
  • Стійкість ітератора

    • Модифікація агрегату під час обходу може виявитися небезпеченою для ітератора
  • Додаткові операції



Ітератори можуть мати привілейований доступ

  • Ітератори можуть мати привілейований доступ

    • В C++ це може бути реалізовано у вигляді дружніх класів
  • Ітератори для обходу складених (наприклад, деревовидних) структур

  • Порожні ітератори (NullIterator)

    • Вироджений випадок ітератора, який який завжди вважає, щоб обхід завершено


Реалізація ітераторів в бібліотеці STL мови C++

  • Реалізація ітераторів в бібліотеці STL мови C++

  • Реалізація ітераторів в Java (в якості базового інтерфейсу ітератора тут виступає Iterable)

  • Реалізація ітераторів в .NET із базовим інтерфейсом ітератора IEnumerable



Composite. Ітератори досить часто застосовуються для обходу рекурсивних структур, створених із використанням Composite

  • Composite. Ітератори досить часто застосовуються для обходу рекурсивних структур, створених із використанням Composite

  • Factory Method використовується для створення необхідних екземплярів ітератора



Схожі:

Назва Назва iconПовторення вивченого Що таке загальна назва і власна назва іменників?

Назва Назва iconНазва: Назва
Поштова система дозволяє організувати складні системи, засновані на пересилання пошти від одного до багатьох абонентам, це
Назва Назва iconНазва тварини. Назва тварини
Навесні у водоймах риби відкладають ікру. З ікринок з’являються мальки, схожі на дорослих риб
Назва Назва iconНазва ндр назва ндр
Формування громадянського суспільства в Україні як передумова для реалізації державної політики у сфері європейської та євроатлантичної...
Назва Назва iconОфіційна назва – Республіка Індія Офіційна назва – Республіка Індія
...
Назва Назва iconШістдесятники України
Шістдесятники назва нової генерації (покоління) радянської та української національної інтелігенції, що ввійшла в культуру (мистецтво,...
Назва Назва iconОснови платформи. Net framework 2006 Зміст
Розробка платформи почалася у 1998 році. Перша робоча назва Project 42, потім була назва com object Runtime чи, скорочено, cor, пізніше...
Назва Назва iconНазва проекту: «Дивовижні зупинки» Назва проекту: «Дивовижні зупинки»
Дитина сприймає довкілля через призму дорослого. Для самостійного сприйняття у малят не вистарчає життєвого досвіду, розуміння природних...
Назва Назва iconТрипільська культура (широко відома також як культура «Кукутені-Трипілля»), археологічна культура часів неоліту та енеоліту; назва походить від с.
«Кукутені-Трипілля»), археологічна культура часів неоліту та енеоліту; назва походить від с. Трипілля на Київщині (у вказаній "розширеній"...
Назва Назва iconОфіційна назва Російська Федерація. Офіційна назва Російська Федерація
Росія країна у східній Європі І північній Азії. Її сусідами є кндр, кнр, Монголія, Казахстан, Азербайджан, Грузія, Україна, Білорусь,...

Додайте кнопку на своєму сайті:
dok.znaimo.com.ua


База даних захищена авторським правом ©dok.znaimo.com.ua 2013
звернутися до адміністрації
dok.znaimo.com.ua
Головна сторінка