observer.txt 918 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. @startuml
  2. /' OBSERVER '/
  3. interface Subject {
  4. - vObserver : Vector
  5. + attach(in o : Observer)
  6. + detach(in o : Observer)
  7. + notify()
  8. # getState()
  9. # setState()
  10. }
  11. class ConcreteSubject {
  12. - subjectState : Int
  13. + getState()
  14. + setState()
  15. }
  16. interface Observer {
  17. # update(s : Subject) : Context
  18. # getState() : Int
  19. # getId() : Int
  20. }
  21. class ConcreteObserver {
  22. - observerState : Int
  23. + update()
  24. + getState()
  25. + setState()
  26. }
  27. hide empty members
  28. Subject ->"0..*" Observer : notifies
  29. Subject <|-- ConcreteSubject
  30. Observer <|-- ConcreteObserver
  31. ConcreteSubject <- ConcreteObserver : observes
  32. note as N1
  33. <b><color:royalBlue>Observer</color></b>
  34. <b>Type:</b> Behavioral
  35. Définit une relation un à plusieurs
  36. pour réaliser la mise à jour lors
  37. d'un changement d'état. Tous les objets
  38. dépendants sont notifiés automatiquement.
  39. end note
  40. @enduml