style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

duda existencial Patron MVC

tengas todos ustedes buenas noches ..miren soy un alumno novato asprendiendo a programar aplicaciones java en escritorio ..mi duda es la sgte Un ingeniero de mi facultad nos dijo una vez que ibamos a utilizar el patron MVC orientado a objetos para hacer un pequeño proyecto de fin de ciclo ..y creo los sgtes paquetes beans,dao,logic,vista .....mi duda es si son 3 capas porque crea 4 paquetes ..tal vez suene algo risorio lo que digo pero me gustaria que ustedes me explicaran.... yo entiendo que cada capa del MVC debe representarse por un paquete a la hora de programar ..gracias por tomarse el tiempo de leer este post

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Espero me puedan Ayudar Con

Espero me puedan Ayudar Con sus Comentarios

Imagen de neko069

Capas

No escribiste para crees tú que existe cada paquete, pero tradicionalmente:
Vista - El GUI (lo que el usuario ve).
logic - Capa de negocio (donde se ejecutan las reglas del negocio ñ_ñ)
dao - Acceso a datos.
beans - DTO,VO, Pojos, beans, tus objetos de transporte vaya.

Te faltaría uno de utlerías nada más (a mi muy subjetivo punto de vista) pero para empezar lo veo bien :-)

Gracias por tu respuesta

Gracias por tu respuesta ..podrasi mandarme un link donde me aclre mas este panorama porfavor ...recien estyo empezand oen estos temas ..gracias de antemano

Imagen de ezamudio

dao

Puedes ver el paquete dao como auxiliar de logic; ambos conforman la capa de control. El paquete beans sería tu modelo y el paquete vista es obvio.

Lo que pasa es que la parte de "control" es muy vaga y conviene separarla en subcomponentes por funcionalidades. Incluso la parte de dao podría (algunos dirán que debería) partirse en dos: las interfaces (el API del dao) y las implementaciones, de modo que desde fuera utilices solamente las interfaces y así puedas cambiar la implementación para pruebas o para distintos ambientes.

Imagen de arterzatij

Capas

En mi muy particular uso cuando tengo completo control de las aplicaciones lo divido como sigue...

Capas

Donde las flechas punteadas indican la comunicación entre las capas (paquetes como se manejo en este caso). En el caso del domain yo lo utilizo asi puesto que las entidades las utilizo para tranferir informacion entre las distintas capas de la aplicacion. Te podras dar cuenta que las capas de view, solo tiene comunicacion con controller mas no asi con dao, lo mismo dao con controller pero no con view. Que ese es el punto de utilizar el MVC. Bueno asi lo entiendo y asi lo implemento.

Otra cosa a considerar cuando tengas tiempo y puedas investigar mas cosas es poder separa en jars las distintas capas para que esten mejor separadas.

de esa manera tendrás jars para cada capa por ejemplo:

domain.jar
dao.jar
controller.jar
view.jar
utils.jar

Editado:

Olvide mencionar lo siguiente:

paquete DAO como lo ves en la imagen son todos los daos (Clases e Interfaces que tienen acceso a los datos) hace uso de DTO para poner ahi los datos recuperados
paquete Domain: Hay alguien que tiene que enviar y recibir datos de todas las capas.
paquete View: paginas WEB, proyectos de consola, proyectos Swing e incluso en ciertas ocaciones lo realizo un webservice, aqui se exponen los datos recuperados y procesados.
paquete Controller: Toda la logica de negio, reglas de negocio, validacion de lado del servidor. Procesa los datos.
paquete Utils: utilerias que las distintas capas podran tener acceso.

Y como ezamudio comento puedes ver como 1 solo a DAO y Controller asi solo tendras las 3 capas.

Imagen de ingscjoshua

solo como dato tecnico

Hola solo como dato tecnico ahora ya no los llaman DTO solo son TO y la explicación de como funciona este patron esta en la siguiente liga aqui

Gracias por aclararme el

Gracias por aclararme el panorama ahora si a seguir leyendo libros y analizando ,....disculpara es que soy novato ...me podrian recomendar algun libro para poder empaparme mas del tema

Imagen de arterzatij

MVC

No se si este en español pero esta san google para que lo traduzca http://www.oracle.com/technetwork/articles/javase/index-142890.html

No, una capa no es un paquete

No, una capa no es un paquete (pero puedes poner una capa en un paquete)

Un paquete es una forma de acomodar cosas que esten logicamente relacionadas. Una capa es m'as bien algo todavia m'as abstracto.

En el MVC hay tres capas:

  • El modelo. Lo que representa las cosas con las que quieres trabajar
  • La vista . Lo que el usuario final ve de la aplicaci'on, la interfaz de usaurio etc.
  • El controlador. El que sincroniza el trabajo entre la vista y el modelo

Si quieres hacer una aplicaci'on para guardar fotos por ejemplo, el modelo son las fotos mismas, la vista la aplicacion web/escritorio donde se presenten las vistas, botones, etc. etc. y el controlador lo que hace el boton al ser presionado para que la foto de despliegue/busque/guarde/borre, etc. etc

Esto a muy grandes rasgos.

Para una explicacion m'as profunda e interesante sobre la forma en la que Swing lo hace para Java ( no es MVC completo pero una forma "inspirada" ) puedes leer este articulo sobre la arquitectura de Swing:

Oracle site oficial ( y roto ) : http://www.oracle.com/technetwork/java/architecture-142923.html
Wayback machine: http://web.archive.org/web/20110413222135/http://java.sun.com/products/j...

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">