| Membros: 220 |
| Idioma: Português (Brasil) |
| Categorias do grupo:
|
| Mais informações sobre o grupo » |
|
Uso de proxy dinâmico em java. Cada classe no seu arquivo.
public interface Calculadora { public int soma(); }
----------------------
public class CalculadoraImpl implements Calculadora {
@Override public int soma() { // TODO Auto-generated method stub return 0; }
}
------------------------
import java.lang.reflect.Method;
public class DynamicProxy implements java.lang.reflect.InvocationHandler { Object obj; //objeto real passado como parametro no contrutor
public DynamicProxy(Object obj) { this.obj = obj; } public Object invoke(Object proxy, Method m, Object[] args) throws Throwable { //Aqui eu faço a chamada do método return m.invoke(obj, args); } }
--------------------------------
import java.lang.reflect.Proxy;
public class Server { public static Calculadora getCalculadora() { Calculadora calc = new CalculadoraImpl();
return (Calculadora)Proxy.newProxyInstance(
calc.getClass().getClassLoader(), //carregador da classe CalculadoraImpl
new Class[]{Calculadora.class}, //classe da interface
new DynamicProxy(calc)); //proxy, constroi passando como parametro a instancia da calculadora }
}
---------------------
public class Client { public static void main(String[] args) { Calculadora calc = Server.getCalculadora(); System.out.println(calc.soma()); }
}
--------------------
O cliente recebe o objeto como uma referência polimórfica do proxy e faz a chamada do método soma via método invoke do proxy. Maiores dúvidas postem aqui.
|
| |||||||||||
| Criar um grupo - Grupos do Google - Página inicial do Google - Termos de Uso - Política de Privacidade |
| ©2009 Google |