2011-07-07 23 views
8

¿Hay alguna forma en Eclipse de generar una clase de proxy (como en un patrón de proxy, no una llamada remota)? Algo a lo largo de las líneas de esteGeneración de clase de proxy de Java en Eclipse

public class FooBar{ 
    public int getBiz(){ 
     return 1234; 
    } 
} 

genera

public class FooBarProxy{ 
    protected FooBar foobar; 
    public FooBarProxy(FooBar f) {...} 
    public int getBiz(){ 
     return foobar.getBiz() 
    } 
} 

Respuesta

14

Cree usted mismo la clase de proxy y agregue la variable de instancia de FooBar. Seleccione la variable, haga clic derecho -> fuente -> generar métodos de delegado

+0

Esto es extremadamente útil cuando se crea un decorador para cambiar el comportamiento de un método específico. – fiffy

2

Por qué no usar Java incorporado en el proxy dinámico. Se genera un proxy en tiempo de ejecución:

  1. implementar su lógica de proxy mediante la implementación de java.lang.reflect.InvocationHandler
  2. crear un proxy dinámico; vea http://download.oracle.com/javase/6/docs/api/java/lang/reflect/Proxy.html (ejemplo incluido)
+0

Es interesante, pero parece un uso diferente - principalmente para intercepción/reflexión mágica .. Para el plan viejo patrón de proxy en Java, es mucho más complicado que escribir cosas fuera (también para la depuración), en mi humilde opinión. Por cierto, las construcciones similares parecen más aceptables en otros idiomas (por ejemplo, Forward en Ruby http://www.ruby-doc.org/stdlib-2.0/libdoc/forwardable/rdoc/Forwardable.html) – inger

Cuestiones relacionadas