iterator.txt 843 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. @startuml
  2. /' ITERATOR '/
  3. class Client
  4. interface Aggregate {
  5. # createIterator()
  6. }
  7. class ConcreteAggregate {
  8. + createIterator() : Context
  9. + getItem() : Int
  10. + getSize(): Uint
  11. + addItem() : Context
  12. }
  13. interface Iterator {
  14. # next() : Context
  15. # first() : Context
  16. # isDone() : Bool
  17. # currentItem() : Context
  18. }
  19. class ConcreteIterator {
  20. + next() : Context
  21. + first() : Context
  22. + isDone() : Bool
  23. + currentItem() : Context
  24. }
  25. hide empty members
  26. Client --> Aggregate
  27. Client --> Iterator
  28. Aggregate <|-- ConcreteAggregate
  29. Iterator <|-- ConcreteIterator
  30. note as N1
  31. <b><color:royalBlue>Iterator</color></b>
  32. <b>Type:</b> Behavioral
  33. Permet d'accéder aux données d'un agrégat
  34. de manière séquentielle sans avoir
  35. à connaitre la structure de données de l'objet.
  36. end note
  37. @enduml