Foros del Web » Programación para mayores de 30 ;) » Java »

Sobre el Ejemplo MVC de Oracle

Estas en el tema de Sobre el Ejemplo MVC de Oracle en el foro de Java en Foros del Web. Buenas, En el siguiente enlace tenemos el ejemplo MVC de Oracle.Que se puede descargar en la parte inferior de la página: http://www.oracle.com/technetwork/articles/javase/mvc-136693.html Pues bien, estoy ...
  #1 (permalink)  
Antiguo 17/11/2011, 15:36
Jeflopo
Invitado
 
Mensajes: n/a
Puntos:
Sobre el Ejemplo MVC de Oracle

Buenas,

En el siguiente enlace tenemos el ejemplo MVC de Oracle.Que se puede descargar en la parte inferior de la página:
http://www.oracle.com/technetwork/articles/javase/mvc-136693.html

Pues bien, estoy creando una copia del proyecto, pero dejando nada más que una sola propiedad. Modelo, Controlador y vista, para tratar una única propiedad. Está todo escrito... Pero la etiqueta a la que quiero definirle el nuevo valor de la propiedad no llega a obtenerlo.

Cuelgo el proyecto mio, modificado y simplicando el original de oracle:
http://www.megaupload.com/?d=GP51LEHZ

Creo que el error podría estar pues en como se propaga el evento del propertyChange a través de las clases... O bien en los ActionListeners de la clase UserViewPanel que esté tocando algo que no funcione...

El proyecto se ejecuta y está todo el código escrito. Excepto lo que falle claro. Por favor, alguien podría revisarlo y ver en que fallo ???? :( Me da rabia que no chute por que es que está hecho ya basicamente... seguro que es alguna chorrada. Pero no soy capaz de verlo.

Muchisimas gracias si alguno se anima a mirar el código y ayudarme.
  #2 (permalink)  
Antiguo 17/11/2011, 20:31
Jeflopo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Sobre el Ejemplo MVC de Oracle

He resuelto el problema !!!!!! Aunque el debugger no devolvía errores sintácticos si que los había de lógica. La aplicación se ejecutaba sin problemas. Por eso no vi el error hasta que revisé en que punto la aplicación se perdía en el "intercambio de mensajes".

Vi que el addActionListener y ActionPerformed del botón funcionaba... Pero cuando la instancia del controlador iba a invocar el cambio de propiedad el debugger ya no entraba en el método:
Código PHP:
// Invoca cambio en UserViewPanel.java
controller.changeUserName(txtNewName.getText());

// No entraba en UserController.java
public void changeUserName(String newUserName) {
    
setModelProperty(USER_NAME_PROPERTYnewUserName);                                 

Al ver esto entendí que el error tenía que ser anterior, incluso al actionlistener... El error estaba en la clase... Concretamente en el constructor, donde en vez de pasarle el argumento le hice al controlador una referencia a sí mismo:
Código PHP:
// Yo hice esto
public UserViewPanel(UserController userController) {
        
this.controller controller;

        
this.initComponents();
    }

// Y lo correcto era esto
public UserViewPanel(UserController userController) {
    
this.controller userController;

    
this.initComponents();

Como dije, era una chorrada... un lápsus al poner mal una variable. Vamos lo típico. Ahora estoy feliz, de haberlo hecho y comprendido.

Lanzo una pregunta... ¿ Programaríais de esta forma vuestra aplicación ? El artículo de oracle sobre este MVC es del 2007 y no sé si hoy día directamente ustedes que son los que saben ni se plantearían empezar así una aplicación ¿ o de que forma mejorarían este ?

Muchas gracias :D
  #3 (permalink)  
Antiguo 18/11/2011, 11:14
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Sobre el Ejemplo MVC de Oracle

El patrón MVC es una buena forma de separar la interfaz de los datos y se puede aplicar de muchas maneras. El artículo de Oracle propone una manera, utilizando eventos propios de Swing, pero se puede hacer de otras maneras.

El único pero que se le puede poner es que utiliza bastante la reflexión, lo cual puede ser un poco perjudicial en el tiempo de ejecución, pero eso tendrás que decidirlo tú.
  #4 (permalink)  
Antiguo 18/11/2011, 13:34
Jeflopo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Sobre el Ejemplo MVC de Oracle

Muchas gracias por la respuesta. De formas de aplicar MVC en Java así de pronto solo se me ocurren 4.
Estos si no me equivoco serían MVC Push:
- Una sería esta, utilizando JavaBeans y propagando el evento de cambio de propiedad.
- Otra sería Implementando observable (más o menos sería lo mismo)
- Un MVC pull, creando objetos para los diferentes tiers, estructuras de datos y copiarlas de tier a tier.... Pero siendo el controlador o la propia vista quienes envian el "response" a tier del modelo, para controlar como se actualizan los datos. Aunque MVC Pull suele ser para entornos stateless como web no ? :S
- Utilizar los Modelos de Swing y toda su parafernalia para armarlo.

Me crea muchísima confusión no saber discernir que forma de hacerlo podría irme mejor, me iría muy bien alguna pauta o algún consejo, me imagino que la última que he dicho, usar los Modelos de Swing estará bastante aceptada. ¿Vosotros que opinais?

PD: Total para que a lo mejor me digan: Pasa de todo eso y esas cosas en los actionlisteners.... Lo harían ?

Última edición por Jeflopo; 18/11/2011 a las 13:41
  #5 (permalink)  
Antiguo 18/11/2011, 14:31
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Sobre el Ejemplo MVC de Oracle

Creo que estás complicándolo demasiado, el patrón solo trata de separar la aplicación en capas. El cómo, puede ser sencillo o complicado, eso no es cosa del patrón.

http://www.chuidiang.com/ood/patrone...ontrolador.php
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #6 (permalink)  
Antiguo 18/11/2011, 22:05
Jeflopo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Sobre el Ejemplo MVC de Oracle

Gracias por el enlace, me lo voy a leer de pe a pa... chuidiang siempre es un buen recurso ;)

A día de hoy me interesa seguir estudiando Swing y su arquitectura para hacer aplicaciones, Modelos, Actions, Event-Driven, componentes... Creo que aunque no es ya tendencia puede servirme para aprender muchas cosas aún. Luego me tira también aprender más poo, usar bien clases abstractas, interfaces, genéricos, estructuras de datos...

Mi próximo paso quizá sea modificar este ejemplo, veo cosas que no me gustan como decían por arriba que para cada set se utilice reflexión... O que se copien todas las propiedades entre las clases correspondientes de tier a tier, prefiero tratar de hacer de interfaz únicamente... Sin tener que copiar o redefinir propiedades y sus valores... y veo demasiado andamiaje inutil... Espero poco a poco, con este tipo de cosas ir aclarando mis ideas jeje

Tengo mucho por leer y escribir, y como ya nos salimos del objetivo del post inicial por mi parte lo doy por solucionado el post.

Muchas gracias !!!

Etiquetas: ejemplo, mvc, oracle
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:36.