Home Articoli Ingegneria del software Design Pattern - Observer

Page Rank Check    





Design Pattern - Observer
Articoli - Ingegneria del software
Scritto da RedBaron85   
Sabato 30 Gennaio 2010 15:07

Design Pattern - Observer

Il Design Pattern Observer consente di notificare un cambiamento di stato di un oggetto (il Subjct, l'oggetto osservato) a tutti gli oggetti (osservatori, observers) interessati.

  • INTENTO

Fare in modo che quando un oggetto (il Subject, l'oggetto osservato) cambia stato, gli osservatori da esso dipendenti ricevano automaticamente notifica di tale cambiamento.

 

  • MOTIVAZIONE

Alcuni oggetti dipendono dalle informazioni o dallo stato di un altro oggetto e devono essere avvertiti se questo cambia (es.: ogni volta che si sposta il mouse, le coordinate cambiano e una label le mostra; se segna una squadra, i risultati live della partita vengono automaticamente aggiornati e la pagina viene re-inviata ai browser; ...).

 

  • SOLUZIONE

Bisogna far sì che un osservatore manifesti, presso il Subject, l'interesse a ricevere le notifiche.

Il Subject può quindi mettere a disposizione, ad esempio, dei metodi per aggiungere ad una lista di entità da avvertire il riferimento all'osservatore (ed eventualmente altre informazioni, come ad esempio che tipo di caratteristiche osservare o con che frequenza ricevere le notifiche, ecc...).

Il tutto si traduce, quindi, in strutture dati e metodi da implementare all'interno della classe Subject (osservata).

Aumentando il livello di astrazione, si può creare un Subject che mette a disposizione i metodi Attach(Observer), Detach(Observer) e Notify(); i soggetti saranno quindi dei ConcreteSubject, che ereditano da Subject.

I ConcreteObserver saranno a loro volta figli di un Observer.

 

  • CONSEGUENZE (caso più astratto)

Il Subject conoscerà solo la classe Observer, non i vari ConcreteObserver.

I ConcreteSubject e i ConcreteObserver non saranno accoppiati direttamente, dunque saranno più facili da modificare, riusare, ecc... .

Tags:     ingegneria del software      design patern      observer
Ultimo aggiornamento Domenica 22 Gennaio 2012 15:25
 

Ti è piaciuto questo articolo ? Condividilo !



RedBaron85.com Forum community banner

Non hai trovato quello che cercavi ?
Ricerca personalizzata
Copyright © 2012 RedBaron85.com: Informatica, CG 2D e 3D, Blender, Python, Java 2D e 3D, 3D Studio e altro ancora!. Tutti i diritti riservati.
Joomla! è un software libero rilasciato sotto licenza GNU/GPL.

Milanese Francesco - Partita IVA: 04950350878

AltroArticoliblog utentiBlueprintsContestenglishProgrammazioneModelliElencoNewsTexturesTutorialsVideotutorials