Sembra che questo esempio di implementazione del pattern Observer sia disegnato dal libro Headfirst Design Patterns, OReilly, che attualmente sto leggendo. Ecco un diagramma UML dal libro
Non è molto ben visibile, ma i metodi, che compongono l'Interfaccia Oggetto sono:
- registerObserver ()
- removeObserver ()
- notifyObservers ()
Ciò di cui sono scettico è l'ultimo metodo. Perché i client dell'interfaccia dovrebbero conoscere il modo specifico in cui vengono chiamati? IMHO il luogo di questo metodo è all'interno dell'implementazione del soggetto concreto -ConcreteSubject.