|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2008
Città: Bologna
Messaggi: 2179
|
[java] l'alterantiva a Observer/Observable ?
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?
__________________
CM 690 Pure w || ROG Crosshair III || AMD || OCZ Gold || Ati || ciao Kiu... || LOST addicted - 2004 ♥ 2010 1900 S.S.LAZIO |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
un sistema di richiesta attiva (polling) da parte dell'osservatore. Il meccanismo implementativo, però, dipende dai requisiti
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2008
Città: Bologna
Messaggi: 2179
|
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.. un sistema di richieste attive in che senso ?
__________________
CM 690 Pure w || ROG Crosshair III || AMD || OCZ Gold || Ati || ciao Kiu... || LOST addicted - 2004 ♥ 2010 1900 S.S.LAZIO |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
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). |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2008
Città: Bologna
Messaggi: 2179
|
volevo sapere se c'era un'alternativa implementativa a observer/observable .
__________________
CM 690 Pure w || ROG Crosshair III || AMD || OCZ Gold || Ati || ciao Kiu... || LOST addicted - 2004 ♥ 2010 1900 S.S.LAZIO |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
te l'ho proposta: è quella che ho chiamato polling o richiesta attiva o richiesta ripetuta
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
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).
__________________
|
|
|
|
|
|
#8 | ||
|
Senior Member
Iscritto dal: Jan 2008
Città: Bologna
Messaggi: 2179
|
Quote:
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. Quote:
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...
__________________
CM 690 Pure w || ROG Crosshair III || AMD || OCZ Gold || Ati || ciao Kiu... || LOST addicted - 2004 ♥ 2010 1900 S.S.LAZIO |
||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:42.




















