Gracias a la arquitectura MVC, podríamos desarrollar por un lado la interfaz del cliente Web, y delegar en otro equipo de desarrollo la parte de la lógica de negocio. En nuestro caso primero desarrollaremos la parte de negocio, para terminar implementando la capa de presentación y control (más que nada, por claridad en el desglose de los conceptos y su aplicación práctica).
Entender cómo trabaja Struts
Antes de entrar en detalles específicos de nuestra aplicación, debemos entender cómo trabaja Struts para poder afrontar con éxito otro tipo de desarrollos y aplicaciones.

Como se aprecia en la figura, las aplicaciones Struts residen en un contenedor Web (dentro de un servidor de aplicaciones) y pueden hacer uso de los servicios proporcionados por el contenedor, como el manejo de peticiones HTTP o HTTPS. Esto permite al desarrollador olvidarse de la lógica de negocio. Así, Struts hace uso de varias áreas de recursos compartidos para almacenar objetos: petición ( javax.servlet.http.HttpServletRequest ), sesión ( javax.servlet.http.HttpSession ), aplicación ( javax.servlet.ServletContext ) y página ( javax.servlet.jsp.PageContext ).
Desde el punto de vista de la arquitectura MVC, las clases que proporciona Struts respecto de la capa C son:

public ActionForward execute(ActionMapping mapping, HttpServletRequest request, HttpServletResponse response) throws Exception;

Con respecto de la capa M, ya hemos comentado que Struts no fue diseñado para trabajar con esta capa. Sin embargo, es obvio que Struts recibirá información de esta capa (aunque no sepa cómo está implementada). Así, la mejor forma de solucionar cómo Struts se comunica con la capa de negocio de forma que sea completamente independiente de la tecnología de implementación de ésta, es utilizar un patrón de diseño, como por ejemplo DTOs (Data Transfer Objects), también llamados Value Objects (VO).
La idea es que Struts reciba la información en forma de vistas (VOs), pero no sepa cómo se han creado esas vistas. Para ello también necesitaremos implementar un nuevo patrón de diseño muy conocido, el Business Delegate. Con este patrón, crearemos un servicio perteneciente a la capa de negocio, que servirá de nexo de unión con la capa de control y será a través del cual Struts pedirá y recibirá los únicos objetos que entiende y con los que sabe trabajar: los VOs. Por el otro lado, la capa de negocio sólo sabrá que puede recibir peticiones del servicio de acceso a BD a través de JDBC y devolverá VOs, sin importarle ni quién los pide ni quién los usa a continuación (no os preocupéis que con los ejemplos se verá mucho más claro).
Por último, con respecto a la capa V, los elementos de los que hace uso Struts son (algunos ya los conocemos):
Paso a paso: la capa del modelo de negocio
Veamos, tal y como se ha comentado, en primer lugar cómo ir desarrollando el código de la lógica de negocio para nuestra aplicación del carrito de la compra.

Usuarios que han visto este tema también han visto...
- ¿Qué es el path y el classpath de Java?
- Generar un archivo ejecutable con Java
- Crear sonido timbre de teléfono en Java
- Los operadores en Java
- Los interfaces y la Herencia Múltiple en Java
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.