In realtà tu hai una interfaccia e dichiari che il tuo client è in grado di soddisfarla, in questo proxy non ne vedo.Originariamente inviato da neidus
Se qualcuno conosce questo tipo di pattern, può vedere se sbaglio qualcosa nell'implementazione?
Protocollo usato TCP, quindi classi Socket e ServerSocket
Classe Client= genera i thread che devono inviare richieste al Server
Classe ClientThread= nel costruttore crea la Socket client, ridefinisce il metodo run(), selezionando quanto deve essere mandato come richiesta, crea un'istanza del Proxy lato client, e su di esso invoca un metodo dell'interfaccia base.
Classe Proxy Client= implementa i metodi che sono definiti nell'interfaccia, inviando per ogni tipo di metodo quello che serve, tramite i canali di I/O, al Server e leggendo quanto gli viene inviato dal server
sai già a priori quali sono le richieste (quindi automatiche) o devi gestirle? In genere è un client che fa una richiesta al thread, quasi sempre il client (per quanto riguarda il lato richiesta) è mono-thread.
Dimentichi che il client si rivolge da una interfaccia chiedendo un servizio, mettere qui l'interfaccia e i thread è una forzatura che non c'entra molto con l'applicazione del pattern.
vorrei capire tu cosa intendi per "gestisce la connessione lato server".Originariamente inviato da neidus
Classe Skeleton= gestisce la connessione lato server, implementa l'interfaccia definita e lascia indefiniti i metodi della stessa, legge quanto scritto dal client sul canale, e invoca un thread skeleton, passano socket di connessione, riferimento all'interfaccia e dati del pacchetto dopo aver fatto unmarshalling.
Classe SkeletonThread= costruttore, dove legge i dati passati dallo Skeleton, crea un canale di scrittura su Stream per scrivere i dati ottenuti dall'invocazione del metodo richiesto, per restituirli al client.
Quello che tu definisci "skeleton" in realtà non è altro che la tua interfaccia (anche se ovviamente on instanzi nessuna interfaccia).
Vedila così, quando fai una connessione ad un server, ti connetti a qualcuno che dichiara di essere in grado di fare qualcosa. Se ti risponde il proxy o il server reale a te no importa.
Per capire una applciazione di questo puoi provare a capire bene come funziona RMI che in pratica applica questo pattern.Originariamente inviato da neidus
Classe ServerReale= implementa effettivamente cosa devono fare i metodi definiti nell'interfaccia creata.
Classe Server= istanzia un obj serverReale su cui richiama l'esecuzione dello skeleton
Grazie mille.
E' sempre ben chiaro avere lo schema del pattern a vista
proxy
con relativi esempi