...
| Figuren lengst til venstre viser et klassediagram for Observatør-observert-teknikken. Den abstrakte klassen AbstractObservable implementerer støtte for lagring og registrering av lyttere av typen Observer vha. assosiasjonen observers og metoden addObserver og removeObserver. Den konkrete (ikke-abstrakte) observerbare klassen ConcreteObservable arver dette feltet og disse metodene fra AbstractObservable. Observer-grensesnittet fanger opp hva det vil si å observere (være en lytter), nemlig å implementere update-metode som reagerer på endringen i det observerte objektet. Den konkrete klassen ConcreteObserver implementerer dette grensesnittet og dermed også update-metoden. Vi har her angitt synlighet(smodifikatorer) for metodene: Grønn sirkel tilsvarer public og gul ruter tilsvarer protected (og rød firkant tilsvarer private, men det er ikke vist). Den tilsvarende koden er vist til høyreunder diagrammet. Vi ser at en heltrukken arvingspil tilsvarer extends og en stiplet arvingspil tilsvarer implements. (Feltinitialiseringen og innholdet i metodene er med for kompletthet). Merk at iht. navnkonvensjonen i Java så brukes Listener som endelse på observatør-grensesnitt og dermed også på felt, metoder og variabler som har med den å gjøre, altså XXXListener, Collection<XXXListener> xxxListeners, addXXXListener og removeXXXListener.
|