Autor Tema: Programación Java Patrón MVC modelo vista controlador cómo implementar ejemplo  (Leído 3065 veces)

Pepote21

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 92
    • Ver Perfil
Hola a todos. Estoy aprendiendo a programar y, generalmente, cuando el programa es un poco largo utilizo el patrón MVC. Lo que yo entiendo por este patrón es que las partes vista (solo GUI) y modelo (datos y lógica) van completamente separadas y es como yo lo hago. Sin embargo veo muchos ejemplos de MVC, en los cuales, dentro de la vista incluyen datos como el ingresar los datos de un combobox.

Repito, yo intento aprender con todo separado. Pero estoy teniendo problemas cuando los componentes tienen un modelo como el combobox y las tablas.

Mi pregunta es ¿Sabéis si siempre se puede separar o a veces, como por ejemplo cargar un combobox debo hacerlo en la vista?

A la espera de respuesta, un saludo.
« Última modificación: 14 de Agosto 2020, 19:28 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re:Programación en java. Patrón MVC
« Respuesta #1 en: 01 de Agosto 2019, 00:43 »
En absoluto soy un experto, así que lo único que puedo darte es mi opinión.

Yo creo que no hay que imponerse unas reglas estrictas ni obsesionarse con aplicar la fórmula supuestamente correcta.

Yo también aprendí separando claramente. Hablo de separación totalmente estricta, creaba tres clases (tres archivos .java) llamadas Vista (donde se creaba la GUI), Modelo (donde se tenían los datos, ArrayLists, etc..) y Controlador(hacia de nexo entre las otras dos), más las clases necesarias para crear el resto del programa.
Tenía sus ventajas, pero en general, esa separación tan "excesiva" provocaba escribir muchos más métodos, muchos de los cuáles lo único que hacían era llamar a otro método equivalente declarado en otra clase.
A veces ocurría que la Vista pedía al Controlador, que llamase a un método del Modelo, el cuál a su vez lo que hacía era pedirle al Controlador que llamase a otro método de la Vista...demasiados pasos intermedios...

Con el tiempo fui prescindiendo de esta separación tan estricta ya que no era realmente necesaria para seguir aplicando el patrón MVC, incluso en una única clase se puede aplicar este patrón.
Cada programa es distinto y en cada uno de ellos veía que podía ser más o menos laxo con este patrón, si con ello conseguía que el programa fuese más eficiente e incluso más entendible al leer el código.

En definitiva, si te encuentras casos en los que ganas en eficiencia sin por ello perder eficacia (eficacia y eficiencia son cosas distintas) permitiendo que la Vista y Modelo se mezclen un poquito, pues no pasa nada.

De todos modos, conceptualmente hablando, da igual si Vista y Modelo están estrictamente separados o están totalmente mezclados.
La Vista siempre será lo que el usuario puede ver, la "fachada" del programa.
Y el Modelo siempre será lo que el usuario no puede ver, lo que ocurre internamente "entre bambalinas".
« Última modificación: 01 de Agosto 2019, 00:45 por Kabuto »
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

Pepote21

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 92
    • Ver Perfil
Re:Programación en java. Patrón MVC
« Respuesta #2 en: 01 de Agosto 2019, 01:20 »
Hola Kabuto.
Muchas gracias por la explicación y consejo. Algo así necesitaba.
Te sigo. Un saludo

Pepote21

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 92
    • Ver Perfil
Re:Programación en java. Patrón MVC
« Respuesta #3 en: 12 de Septiembre 2019, 11:56 »
Hola.
Como dije anteriormente estoy utilizando MVC metiendo las clases que corresponden a la GUI en el paquete vista y los datos y lógica en el paquete Modelo. Por lo tanto, estoy utilizando el paquete Controlador para la relación entre ambos con la aplicación de eventos.
Utilizando solo una clase controlador, considerando que esta solo puede extender una clase, y en este caso me refiero a clases adapter, como MouseAdapter y WindowAdapter me veo obligado a:
1. No utilizar clases adapter e implementar las interfaces ....Listener teniendo que asumir que debo implementar todos los métodos de dichas interfaces, aunque algunos ls puedo dejar vacios, o
2. Crear clases adapter dentro del paquete controlador.

No sé si estoy equivocado en mi forma de desarrollar el programa. A ver si alguien me puede informar de cual es la mejor opción a realizar.
De todas formas actualmente estoy probando esto.
Un saludo a todos. Gracias

Pepote21

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 92
    • Ver Perfil
Re:Programación en java. Patrón MVC
« Respuesta #4 en: 16 de Septiembre 2019, 14:13 »
Hola.
Como respuesta a mi escrito anterior, lo he resuelto haciendo que todas las clases que implementen las interfaces de eventos hereden  de la clase controlador.
Un saludo.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".