Zdravim,
 
 Uz je to nejaky ten patek co jsem naposledy delal s RMI, ale myslim ze by melo 
stacit pridat  implements java.rmi.Remote (k tomu Objekt1Impl).
Ovsem nevylucuji, ze bude nutne provest jeste nejake dalsi figle.
 
Kamil Podlesak

-----Original Message-----
From: [email protected] [mailto:[email protected]]on Behalf 
Of Lukáš Kinc
Sent: Saturday, March 28, 2009 9:00 PM
To: [email protected]
Subject: RMI - Facade


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



  _____  

Stáhněte si zcela nový Messenger 2009! Klikni zde! 
<http://download.live.com/messenger>  

Odpovedet emailem