Título: Ejemplo de 3 capas con java Publicado por: Rijhording en 25 Abril 2010, 08:21 am Buenas Comunidad, quisiera saber si alguien conoce algun ejemplo de un proyecto diseñado en 3 capas con el lenguaje java, ya que estoy por iniciarme en esto y no se como esta el asunto, ya se lo que es 3 capas pero no me vendria mal un ejemplo basico. Gracias por su ayuda!!
Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 25 Abril 2010, 17:42 pm Yo trabajo con tres capas y pienso que no puedes haber preguntado nada mejor las tres capas son excelentes te ayudan a crear aplicación muy profesional siguiendo todas las cosas buenas que debe tener un buen software reutilización escalabilidad desacoplamiento y lo mas importante a lo que veo muy pocos que hacen es no mesclar la lógica de usuario con la lógica de la aplicación
Con eso te olvidas del maldito código autogenerado con sus horribles 100 líneas que solo sirven para poner el layaut incrustado con la lógica de la aplicación si quieres cambiar de vista sin usar 3 capas tendrías que cambiarlo todo en cambio si usas 3 capas solo cambias la vista Las 3 capas no es un patrón de diseño debido a que no resuelve un problema estándar si no que te dice de forma estricta como modelar toda la aplicación Si trabajas con 3 capas + inyección de dependencias + interfaces y clases abstractas te va a quedar un sistema digno de un ingeniero Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 25 Abril 2010, 17:54 pm Las 3 capas sirven para proyectos muy grandes que quieran perdurar por los siglos de los siglos si no es así mejor trabaja solo en 2 capas
Lamentablemente no es perfecta y e notado cosas muy feas acerca de las 3 capas Aumenta la cantidad de código enormemente lo que no significa que el código este desordenado al contrario se pone muy desacoplado Vuelve demasiado lento al principio como siempre hacer algo estricto y muy elaborado (una arquitectura) siempre es lento al principio pero al muy largo plazo devuelve el costo con intereses No tiene muy buena integración con ides espeto netbenas (cada capa seria un modulo) No tiene una capa que yo la llamaría de especificación o común en la cual iría todos las clases e interfaces que son comunes en todas las capas Título: Re: entiendo Publicado por: Rijhording en 25 Abril 2010, 18:10 pm pero yo solamente busco un ejemplo para guiarme como debe ser leerme el codigo para entendermelo por mi mismo e buscado en san google y no hay buenos ejemplos si alguien tuviera un ejemplo en java usando 3 capas..gracias y saludos
Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 25 Abril 2010, 19:03 pm Si sigo con el ejemplo lo voy a terminar en casi hora y media para la tarde ya va estar posteado
-yo trabajo con una variación de 3 capas en realidad trabajo con 4 capas con una cuarta que seria la capa común en donde están dos paquetes el paquetes de entidades o (objetos de negocio) y el paquete de interfaces(esas interfaces que son comunes en tre las capas) Este post es el que mas te va a gustar voy a explicar como se implementa en java 3 capas en un sentido más técnico y en el idioma de un programador casi nadie lo ase así suelen ser demasiado teóricos y no dan un ejemplo concreto El ejemplo es el mas sencillo que se me pueda ocurrir va a ser un sistema para un restaurante que funciona bajo una misma pc sin nada espectacular (inyección de dependencias, clases abstractas) si el ejemplo no va con lo que necesitas puedes avisarme para acomodarlo a tu caso - las capas por recomendación serian paquetes en netbenas además serian modulos -para la capa común iría en com.PollitosPeru.sistemaVenta.comun -en la capa de datos irían clases que se conecten con la fuente de base de datos siendo el caso mas común conectarse con una base de datos relacional con jdbc o alguna especificación de jpa yo hago el ejemplo con jdbc siendo el nombre del paquete com.PollitosPeru.sistemaVenta.datos además una clase que represente mi conexión en particular ConexionPollito importara a com.PollitosPeru.sistemaVenta.comun -en la capa de lógica de negocio estar en el paquete com.PollitosPeru.sistemaVenta.logica aca pondré mi lógica de negocio y solo lógica por ningún motivo importara del paquete javax.swing o alguna librería grafica con excepción de que llame a las clases que representen modelos como javax.swing.table.AbstractableModel o javax.swing.TableModel solo hará importaciones a la capa de datos y a la capa común no habrá sin ninguna excepción importaciones al paquete java.sql o javax.sql o alguno que se equivalente -en la capa de vista hira dentro del paquete com.PollitosPeru.sistemaVenta.vista aqui abra las todos los formularios las clases que sean hijos nietos o vistnientos de Componet si es formulario comenzar con Frm como FrmLoguin FrmCaja y si es panel comenzara con Pan como PanCabeseraCaja PanDetalleCaja aca también pondrás las clases que hagan gráficos estadísticos o impriman reportes Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 26 Abril 2010, 00:38 am Código
Código
Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 26 Abril 2010, 00:39 am Código
Código
Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 26 Abril 2010, 00:42 am Código
Código
Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 26 Abril 2010, 00:51 am preguntas traumas maleteos y amenasas hacer el post correspondiente :xD
Título: Re: Trauma Publicado por: Rijhording en 26 Abril 2010, 23:41 pm me gustaria ver tus interfaces de usuario para guiarme ps xq el resto esta comprensible ok man gracias saludos..
Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 27 Abril 2010, 04:14 am :-X
Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 27 Abril 2010, 04:59 am bueno para darte el gusto
(http://www.subirimagen.info/thumb-011A_4BD652F7.jpg) (http://www.subirimagen.info/share-011A_4BD652F7.html) Título: Re: Ejemplo de 3 capas con java Publicado por: -Ramc- en 27 Abril 2010, 17:32 pm Excelente post sapito169, gracias por aportarnos cómo trabajar con 3 capas, está muy bien explicado y entendible, me gusta como trabajas el diseño de las 3 capas, es cierto que el código queda más grande e incluso algunos lo pueden ver repetitivo, pero, al tener que modificar algo de la aplicación se ven los beneficios. ;-)
Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 27 Abril 2010, 20:54 pm -acerca de que si es repetitivo si lo es y es espectacularmente lento :rolleyes:
pero eso se puede resolver usando reflexión (reinventando la rueda) o mejor aun usando jpa -en vista que el post fue un Éxito voy hacer el siguiente post acerca de como hacer 3 capas usando la especificación de jpa así se olvidan de hacer su dao(la clase que agrega modifica y elimina) por entidad Usar 3 capas con jpa es espectacularmente practico y mas rápido que con la manera que les e enseñado validad para jdbc tal ves haga un video de como hacer las capas en netbenas pero eso todavía dentro de una semana Título: Re: Ejemplo de 3 capas con java Publicado por: jaivsa en 8 Septiembre 2010, 18:03 pm Hola Sapito169. quisiera saber si ya has colgado como programar en 3 capas con la implementacion jpa que mencionas, este ejemplo realmente es genial, y se agradece a gente como tu por estos sitios.
Un saludo. Título: Re: Ejemplo de 3 capas con java Publicado por: Aeros en 9 Septiembre 2010, 11:32 am Gracias sapito por tu aporte!
si contestaras los mails o mps serias perfecto :D Título: Re: Ejemplo de 3 capas con java Publicado por: Debci en 9 Septiembre 2010, 16:14 pm sapito se ha ganado una estatua de oro en el distrito java de la ciudad de elhacker.net ;-) ;-) ;-) ;-)!!
Saludos Título: Re: Ejemplo de 3 capas con java Publicado por: fpalmucci en 24 Noviembre 2010, 05:39 am Gracias Sapito, muy buen trabajo, ha costado un poco entender porque soy newbie (demasiado) pero corregimos algunas pequeñeces y ha salido funcionando.
Abrazos Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 25 Noviembre 2010, 06:28 am en primer lugar gracias por leer y disculparme por la mala ortografía voy a corregirlo ya me había olvidado de el post actualmente estoy estudiando y trabajando (en un lenguaje que nunca me enseñaron ) además estoy dando un curso de certificación $%&$%& esa •%•%%$&$ cuesta como •$%•%•$% >:D y por ningún motivo puedo desaprobar la o sacar me mala nota por lo tanto te imaginaras que no tengo tiempo así que te digo que no hice el ejemplo en jpa y que tendrías que esperar hasta el sábado además te cuento que aprendido y mejorado desde que cree el post te cuento que hay algunas cosas que están mal en primer lugar el manejo de errores es malo oculte el error de tal manera que nadie se entera y nadie puede hacer nada en caso de error la otra cosa que e cambiado es que ahora programo mas desacoplado y toda la creación de la aplicación lo creo en una sola aparte así es muy fácil cambiar radicalmente el comportamiento de la aplicación
Título: Re: Ejemplo de 3 capas con java Publicado por: maguevara en 1 Enero 2011, 20:12 pm Hola sapito:
Primero que todo muchas gracias y felicitaciones por las explicaciones, han sido muy sencillas y faciles de entender. Adicionalmente has sido muy concreto y directo, cualidad de maestros. Espero que hayas culminado con el exito el curso y te deseo lo mejor en este nuevo 2011. Si no es mucho pedir, te solicito el favor que ojalá pudieras postear un ejemplo del manejo de errores y otro ejemplo (sencillo, claro está) con el tema que refieres en nov. 25 que dice "toda la creación de la aplicacion lo creo en una sola aparte asi es muy facil cambiar radicalmente el comportamiento de la apliacion". De nuevo muchas gracias, has hecho un aporte muy valioso sobre todo a algunos novatos en Java como yo. Saludos, Maguevara Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 2 Enero 2011, 03:56 am Bueno la respuesta que te voy a dar es algo rara
Algunos me van a criticar por querer programar todo lo más orientado a objetos porque creo que los patrones orientados a objetos pueden ser una gran fuente de solución de problemas que pueden reducir el código basura y te dan la posibilidad de crear código reutlsable incluso sin recompilar es por eso de descubrir que el trabajo en como yo lo e implementado no es muy orientado a objetos y es mas lo conocen como modelo anémico de objetos :laugh: que ironía Algunos me van a decir que tengo una opinión casi religiosa de la santa oo Es por eso que voy a hacer el post un poco diferente Otra cosa es que no puede hacer un código con el manejo de error que yo quisiera sin poner mucho código basura debido al uso de interfaces no se si alguien sabe algún patrón para solucionar eso Cambiar a la forma en que trabajaba antes no va a ser tan difícil tampoco Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 2 Enero 2011, 04:12 am Primero como cualquier talibán de la oo comienzan creando un paquete paquete que diga algo como entidad dominio lógica en mí caso estoy creando una aplicación de venta de platos para el restaurant de la tía veneno creo e paquete com.tiaveneno.ventas.compartido.modelo
Dentro creo la clase Orden Siguiendo algunas recomendaciones de mi compañero y aprendiz joshua bloch Utilizo lo mas que pueda la palabra reservada final así me evito problemas de que algún despistado por error vuelva a re instanciar la clase y haga que explote todo También evito crear relaciones de tipo gallina huevo por evitar problemas de loops infinitos como por ejemplo seria difícil crear el método tostring si la clase detalle de orden tenga una relación a orden además evito lo más posible utilizar el punto más de 2 veces por qué hace el código difícil de testear y crear clases mal diseñadas que hacen cosas que no le incumben evito poner cosas como orden().getDetalle().getPlato().getPrecio package com.tiaveneno.ventas.compartido.modelo; Código
Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 2 Enero 2011, 04:22 am Todas las clases persistentes deben estar anotadas con
@Entity Todas las entidades debe tener un llave primaria en mi caso creo que la mejor opción es que sea de tipo identity no me gusta que el usuario tenga que siquiera ver las claves @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; Tengo que mapear las relaciones entre clases creo que es más natural pensar que cuando guardamos una orden se deberían guardar automáticamente todos sus detalles por eso pongo cascadetype.all @ManyToOne(cascade = CascadeType.ALL) private Personal cajero; Un constructor sin parámetro es obligatorio Además creo un método que le concierne a la orden y otros que solo sirven como azúcar sintáctico (solo te evitan escribir un poco) detalles(DetalleOrden... detalleOrdens) Orden con(DetalleOrden detalleOrden) double obtenerTotal() Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 2 Enero 2011, 04:28 am Luego creó una abstracción la base de datos para así poder cambiarme de proveedor de persistencia sin crear tanto problema por ejemplo es fácil cambiar de jpa ibatis o lo que sea
tener en cuenta que uso generics la k es la clase de la llave primaria y e es la clase de la entidad en concreto Código
y una interfas comcreta para un dao cualquiera Código
Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 2 Enero 2011, 04:39 am Finalmente pongo una implementación concreta de el proveedor de persistencia como en este caso jpa pero puedes poner el que mas te guste
Código
Un poquito de voilepart pero esta vez te vas a quedar asi :o porque no es ni la desina parte de lo que sería con implementado con jbc Código Si es solo eso no falta nada ahora puedes cerrar la boca Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 2 Enero 2011, 05:06 am finalmente código que veríamos en el cliente
Código
Si está bien todo se guarda automáticamente en una sola transacción en caso de error hace rollback y muestra la pila por la salida estándar donde te dice la razón del error en que línea y de que clase es el error Y me olvidaba tienes que poner un fichero de configuración en la carpeta META-INF al (costado de las clases) con el nombre de persistence.xml y agregar una librería de jipa en mi caso puse eclipse link nota no me pregunten cómo se hace eso en netbenas por que estoy enseñando a programar en java no en netbeans asi que si quieres saberlo pon el google por que poner siguiente siguiente en un wizar no es para hombres que tengan pelo en el pecho Código
El fichero xml es un caso particular para eclipselink la primera ves que corras el programa debes reemplazar <property name="eclipselink.ddl-generation" value="none" /> por <property name="eclipselink.ddl-generation" value="DROP_AND_CREATE" /> ademas en <persistence-unit name="jpa" transaction-type="RESOURCE_LOCAL"> Tener en cuenta que lo que dice úntenme debe estar en tu código para ser creado dentro del createEntityManagerFactory En mi caso como dice jpa yo pongo EntityManager entityManager = Persistence. ( "jpa").createEntityManager(); Notese que estoy creando toda la aplicación desde el main asi que si quiero cambiar de proveedor de persistencia solo cambio en el main y no en 20 clases distintas si no te equicas nunca mas vas a tener que corregir la vase de datos la sincronisacion te la hace jpa (http://img32.imageshack.us/img32/3621/carpetasprojectojpa.png) (http://img32.imageshack.us/i/carpetasprojectojpa.png/) Uploaded with ImageShack.us (http://imageshack.us) http://www.mediafire.com/download.php?6ff5dxyb6pb2f6j Título: Re: Ejemplo de 3 capas con java Publicado por: cyberserver en 13 Enero 2011, 05:42 am Hola Sapito. muy bueno tu tema, principalmente en la primera parte.
Pero tengo una duda acerca de la programacion en 3 capas. En general poniento depormedio tu codigo. Las Arquitectura de 3 capas se divide en : 1.- Interface, la Parte visual de nuestra aplicacion 2.- Clases de mi logica. que analizan los parametros enviador por la interface. 3.- Las Clases Ajenas a nuestra logica. (Apis, clases Generales para reutilizar,Clases ya compiladas) Es cierto esto? o la 3 capa solo es ocupada para acceso a una BD Y digo analizando este modelo poniendo depormedio tu codigo, por lo siguiente Tu primera practica la estructuraste masomenos asi. 1.- Interface 2.- Tu logica que relaciona a la 1° y 3° capa 3.- Clases para la conexión de BD. Y en la 3° capa tambien pusiste la clase "DBdaoProducto" que es donde especificas lo que se tiene que modificar en la BD. Pero si supongamos que yo en la parte 3 coloco una Clase (Ya compilada que alguien me paso alguna ves) llamada PatronDeConeccion, que permite la conexión y modificacion de la BD por el envio de Query´s a los metodos muy generales especificados dentro. Cuando yo quiera enviarle los parametros Query a algun metodo dentro de la Clase PatronDeConeccionesta, esta ultima clase donde iria? en el nivel de mi logica por que yo defino mis consultas o junto a la Clase PatronDeConeccion por el solo hecho de que tiene contacto directo con la BD Título: Re: Ejemplo de 3 capas con java Publicado por: cyberserver en 14 Enero 2011, 03:56 am Disculpen, una pregunta mas.
La arquitectura de 3 capas solo es para aplicaciones que implementan una Base de Datos.? Y si tengo una aplicacion, que no ocupa Bd, que hago ? se puede usar esta arquitectura o no ? Título: Re: Ejemplo de 3 capas con java Publicado por: JonathanR en 9 Agosto 2011, 21:05 pm Hola que tal, mi nombre es Jonathan Rojas. Curso 7mo Trimestre de Ingenieria de Sistemas en la Universidad Metropolitana en caracas. En estos momentos me encuentro de vacaciones haciendo bases de datos eficientes y mi pregunta es. Conozco la idea de la programación bajo las 3 capas. Tengo ya 3 proyectos programando así más aquellos que no me piden en la Universidad y quisiera saber bajo su tutela Qué capa inicia a qué capa? porque si nos ponemos a analizar las 3 capas:
1ra Capa: Interfaz de Usuario, visible para usuario y muestra lo que queremos que el usuario vea 2da Capa: Capa Lógica, yo la llamo motor del programa, la única capa que puede acceder directamente a la capa de datos, la 1ra Capa deberá pasar por la 2da para acceder a la 3ra. 4ra Capa: Capa de datos, Base de datos, Modelación de datos, excel o lo que quieras. Una vez que analizamos la teoria vamos a las dudas de programación que todo el mundo se hace: Qué capa se inicializa primero? Cuál lleva el famoso main? Bueno en mi caso he hecho los dos metodos, que la 2da capa lleve el main o la primera lo lleve. Lo lógico y teórico es que la 2da lo lleve ya que si es el motor de tu programa. Pero es un poco dificil relacionar tus ideales con la programación, hay que ser un Az para dominar esa programación. Poniendo el main en la primera capa es sencillo, ponemos el motor como un objeto dentro de la capa y listo. Pero no se vería bonito. Necesito opiniones.. Saludos! Jonathan Rojas Título: Re: Ejemplo de 3 capas con java Publicado por: raao10 en 8 Octubre 2012, 17:43 pm Hola!! q tal por aca me estoy iniciando en el mundo de los sistemas en 3 capas y me ha parecido fabuloso el aporte de todos.. pero me gustaria si me pudieran ayudar en la parte en donde muestra un arreglo para visualizar una tabla de los datos... q no he podido entender... aunque hice el ejemplo no me sale.
Título: Re: Ejemplo de 3 capas con java Publicado por: sapito169 en 8 Octubre 2012, 21:04 pm Hola!! q tal por aca me estoy iniciando en el mundo de los sistemas en 3 capas y me ha parecido fabuloso el aporte de todos.. pero me gustaria si me pudieran ayudar en la parte en donde muestra un arreglo para visualizar una tabla de los datos... q no he podido entender... aunque hice el ejemplo no me sale. codigo completoCódigo
Código
Código
Código
Código
porfavor respondeme te lo suplico Título: Re: Ejemplo de 3 capas con java Publicado por: ed0810 en 13 Noviembre 2012, 20:47 pm Pido POR FAVOR a la comunidad que escribamos BIEN. Que seamos ingenieros no significa que cometamos errores de ortografía detestables!
|