RMI - Facade
Lukáš Kinc
ljklucas na hotmail.com
Sobota Březen 28 20:59:50 CET 2009
Zdravim,
vytvarim aplikaci klient-server s pouzitim RMI a abych nemel desitky metod na vystavenem rozhrani, chtel jsem tyto metody zaobalit do objektu a volat je az pres ne:
public class TridaImplementation extends UnicastRemoteObject implements Trida{
public TridaImplementation(int port) throws RemoteException{
super(port);
}
@Override
public Objekt1Interface getObjekt1() {
return (Objekt1Interface ) new Objekt1Implementation();
}
@Override
public void getObjekt2() {
...
}
}
public class Objekt1Implementation implements Objekt1Interface {
@Override
public String metoda11() {
...
return string;
}
}
Bohuzel jsem zjistil, coz je i celkem logicke, ze kdyz klient takto dostane objekt a zavola na nem metodu (referenceNaRozhrani.getObjekt1().metoda11();), tak mu server posle vsechny objekty, se kterymi potrebuje pracovat ta volana metoda, aby si tu cinnost provedl sam klient, cimz mi defakto protuneluje celou aplikacni logiku. Chtel bych ale, aby mi server na klient poslal pouze navratovou hodnotu te metody (v mem prikladu by to byl String string) tak, jako by to udelal kdybych pouzil jedno-tridovou fasadu:
public class TridaImplementation extends UnicastRemoteObject implements Trida{
public TridaImplementation(int port) throws RemoteException{
super(port);
}
@Override
public String metoda11() {
...
return string;
}
}
Je mozne to nejak jednoduse vyresit nebo se budu muset spokojit pouze s tou jednou tridou?
Lukáš Kinc
_________________________________________________________________
Pozvi své přátele z Facebooku a Hotmailu do Messengeru!
https://www.invite2messenger.net/Default.aspx
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://amaio.cz/pipermail/konference/attachments/20090328/149500e2/attachment.htm>
Další informace o konferenci Konference