PDA

View Full Version : [java] l'alterantiva a Observer/Observable ?


diablo...aka...boss
08-10-2009, 09:31
Sto studiando observer observable per l'utilizzo in applicazioni multithread, infatti ho un server e più client che devono comunicare. Ho capito cosa sono e come funzionano, infatti li ho già usati, solo vorrei capire: quale sarebbe l'alternativa da usare al posto loro?

mad_hhatter
08-10-2009, 10:03
un sistema di richiesta attiva (polling) da parte dell'osservatore. Il meccanismo implementativo, però, dipende dai requisiti

diablo...aka...boss
08-10-2009, 10:10
sostanzialmente il client deve poter prenotare un aula tramite il server, il quale poi terrà traccia di tutte le aule prenotate ecc. ci possono essere più client alla volta ma solo una prenotazione alla volta.

con observer observable ho gestito la cosa in modo che sia sul server che sul client (che sono separati) ci sia una classe principale che gestisce le altre, c'è ne è una per la connessione con l esterno, una per il protocollo o e una per la prenotazione.
sul client una per la conessione e una per il protocollo (che è quella principale che osserva quella della connessione).

sto un pò fuso..:D
un sistema di richieste attive in che senso ?

mad_hhatter
08-10-2009, 11:27
non ho ben capito quale problema tu voglia risolvere, comunque: il pattern observer si propone di risolvere il problema in cui uno o più soggetti (osservatori) siano interessati a rilevare un certo insieme di eventi (oggetto osservato).
Un primo approccio è quello in cui ogni osservatore controlla ripetutamente (richiesta attiva) se un certo evento si è verificato.
Un altro approccio, non necessariamente migliore, è quello, appunto, del pattern observer: ogni osservatore dichiara di voler essere informato (da un'entità preposta) nel momento in cui un certo evento si dovesse verificare: durante l'attesa l'osservatore può fare altro oppure sospendersi (liberando risorse computazionali).

diablo...aka...boss
08-10-2009, 11:48
volevo sapere se c'era un'alternativa implementativa a observer/observable .

mad_hhatter
08-10-2009, 13:26
te l'ho proposta: è quella che ho chiamato polling o richiesta attiva o richiesta ripetuta

^TiGeRShArK^
08-10-2009, 17:54
mi sfugge l'utilizzo di questo pattern se ho capito bene come dovrebbe funzionare...
Non basta gestire le connessioni al server con una coda FIFO mettendo in attesa gli altri utenti se qualcuno sta già prenotando?
(e tra l'altro mi sfugge completamente l'utilità di fare una cosa del genere, dato che non vedo alcun problema nel permettere più prenotazioni in parallelo).

diablo...aka...boss
08-10-2009, 19:01
te l'ho proposta: è quella che ho chiamato polling o richiesta attiva o richiesta ripetuta

si si infatti poi l'ho capita. detta molto brutalmente ogni tot tempo controlla se l'oggetto è stato modificato.
soluzione molto peggiore rispetto ad observer observable perchè spreca tutti i cicli che non segnalano modifiche.
comunque a titolo informativo mi basta e avanza, grazie molte.

mi sfugge l'utilizzo di questo pattern se ho capito bene come dovrebbe funzionare...
Non basta gestire le connessioni al server con una coda FIFO mettendo in attesa gli altri utenti se qualcuno sta già prenotando?
(e tra l'altro mi sfugge completamente l'utilità di fare una cosa del genere, dato che non vedo alcun problema nel permettere più prenotazioni in parallelo).

Si è scelto di utilizzare una struttura Observer/Observable per consentire uno scambio di messaggi tra i vari componenti del server e del client, cercando di rimanere conformi ad un pattern di programmazione MVC.

più prenotazioni in parallelo ?
non sono sicuro di aver capito bene quel che intendi, ma se 2 client mi vogliono prenotare la stessa aula nella stessa data nello stesso orario contemporaneamente ? sono fottuto...:D