@startuml
/' ITERATOR '/
class Client
interface Aggregate {
# createIterator()
}
class ConcreteAggregate {
+ createIterator() : Context
+ getItem() : Int
+ getSize(): Uint
+ addItem() : Context
}
interface Iterator {
# next() : Context
# first() : Context
# isDone() : Bool
# currentItem() : Context
}
class ConcreteIterator {
+ next() : Context
+ first() : Context
+ isDone() : Bool
+ currentItem() : Context
}
hide empty members
Client --> Aggregate
Client --> Iterator
Aggregate <|-- ConcreteAggregate
Iterator <|-- ConcreteIterator
note as N1
Iterator
Type: Behavioral
Permet d'accéder aux données d'un agrégat
de manière séquentielle sans avoir
à connaitre la structure de données de l'objet.
end note
@enduml