JAVA y reflexión proxy dinámico

       Un trabajo reciente en contacto con un modo de proxy dinámico en JAVA, su principio es el uso de Java reflexión en tiempo de ejecución para generar clases de proxy, beneficios agente dinámico en comparación con el agente estático es un número mayor de clase cuando se necesita para ser proxy, se puede reducir fase de desarrollo del programa de un gran número de clase de proxy predefinidas, y el trabajo generado clase proxy en el escenario para que el programa se está ejecutando el proceso de JVM.

       AIDL representación estática será utilizado en el desarrollo, el programa de servidor de AIDL define la interfaz, y luego AIDL programa cliente llama al programa de servidor a través de una interfaz de clase proxy para lograr el propósito de la comunicación.

       MVVM agente de contacto dinámico actual en el modelo de desarrollo, el remitente del mensaje de devolución de llamada de clase de proxy haciendo llegar el mensaje a la clase de devolución de llamada real, y finalmente transferido al destinatario; devolución de llamada desde el número de muy grandes, por lo que los proxies dinámicos, de la siguiente manera:

Proxy.newProxyInstance (

target.getClass (). getClassLoader (), target.getClass (). getInterfaces (), nuevo InvocationHandler () {

@ Override invocación pública de objetos (proxy de objeto, método Método, Object [] args) throws Throwable

{Return null; }})

¿Qué Targé ser un sustituto de la clase, la dinámica puesta en práctica del núcleo proxy es la clase InvocationHandler.

       La tecnología de la base utilizada en proxy dinámico es un reflejo y el polimorfismo, sólo recuerde cuando el maestro de aprendizaje JAVA para explicar las variables y métodos a través de la propiedad privada no está en JAVA otras clases no se puede acceder y método modificado se implementa a través de la reflexión.

        Es decir, en tiempo de ejecución cuando el programa primero JVM para ejecutar un nuevo objeto, como Persona persona = new Persona (); 

        En este punto, la JVM para cargar el archivo compilado Person.class y generar un objeto de clase, una clase tiene sólo un objeto de clase, la reflexión de la naturaleza que es la inversa de la persona objeto de obtener información por este objeto de clase.

        Código de ejemplo reflexión, suponiendo persona atributo id clase es privada, el atributo id puede ser cambiado por el siguiente código:

        Clase personClazz = Class.forName ( "Persona");

        persona persona = personClazz.newInstance ();

        Archivado id = personClazz.getDeclaredFiled ( "id");      

         id.setAccesible (true);

         id.set (persona, 1);

        El polimorfismo es la definición de una interfaz de padre o los padres, pasando una variable superclase en la etapa de desarrollo en la fase de desarrollo del programa, JVM carga dinámicamente en tiempo de ejecución por una subclase, y llamar a las propiedades relevantes y funciones subclases.

        Resumen: Cuando algunas clases no quieren ser expuestos directamente a otras categorías elegibles para la operación del programa, puede utilizar el modo proxy, y cuando se puede utilizar el número de clases que necesitan ser agente proxy estático, y si se debe utilizar un gran número de representaciones dinámicas, dinámica principio proxy es programa Java en tiempo de ejecución de JVM puede obtener información de los puntos de referencia objeto de la clase padre subclase de su clase.

Publicado 11 artículos originales · ganado elogios 2 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/zhengyin_tmac/article/details/104961857
Recomendado
Clasificación