elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ejemplo de 3 capas con java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 4 Ir Abajo Respuesta Imprimir
Autor Tema: Ejemplo de 3 capas con java  (Leído 59,322 veces)
Rijhording

Desconectado Desconectado

Mensajes: 41


Ver Perfil
Ejemplo de 3 capas con java
« 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!!


En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #1 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



« Última modificación: 9 Diciembre 2012, 06:41 am por sapito169 » En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #2 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
« Última modificación: 9 Diciembre 2012, 06:44 am por sapito169 » En línea

Rijhording

Desconectado Desconectado

Mensajes: 41


Ver Perfil
Re: entiendo
« Respuesta #3 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
En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #4 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
« Última modificación: 9 Diciembre 2012, 06:53 am por sapito169 » En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #5 en: 26 Abril 2010, 00:38 am »

Código
  1. package com.pollitosperu.sistemaVentas.comun.Entidades;
  2.  
  3. /**
  4.  *
  5.  * @author luis
  6.  */
  7. public class Producto {
  8.    private int codigo;
  9.    private String nombre;
  10.    private int cantidad;
  11.    private String descripcion;
  12.  
  13.    public int getCodigo() {
  14.        return codigo;
  15.    }
  16.  
  17.    public void setCodigo(int codigo) {
  18.        this.codigo = codigo;
  19.    }
  20.  
  21.  
  22.    public String getNombre() {
  23.        return nombre;
  24.    }
  25.  
  26.    public void setNombre(String nombre) {
  27.        this.nombre = nombre;
  28.    }
  29.  
  30.    public int getCantidad() {
  31.        return cantidad;
  32.    }
  33.  
  34.    public void setCantidad(int cantidad) {
  35.        this.cantidad = cantidad;
  36.    }
  37.  
  38.    public String getDescripcion() {
  39.        return descripcion;
  40.    }
  41.  
  42.    public void setDescripcion(String descripcion) {
  43.        this.descripcion = descripcion;
  44.    }
  45. }
  46.  
  47.  

Código
  1. package com.pollitosperu.sistemaVentas.comun.Interfases;
  2.  
  3. import com.pollitosperu.sistemaVentas.comun.Entidades.Producto;
  4. import java.util.ArrayList;
  5.  
  6. public interface IdaoProducto {
  7.  
  8.    public void agreagProducto(Producto producto);
  9.  
  10.    public void eliminaProducto(int codigo);
  11.  
  12.    public void modificaProducto(int codigo, Producto producto);
  13.  
  14.    public ArrayList<Producto> listaProductos();
  15. }
  16.  
« Última modificación: 26 Abril 2010, 00:45 am por sapito169 » En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #6 en: 26 Abril 2010, 00:39 am »

Código
  1. package com.pollitosperu.sistemaVentas.datos;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.Driver;
  5. import java.sql.DriverManager;
  6. import java.sql.SQLException;
  7. import java.util.logging.Level;
  8. import java.util.logging.Logger;
  9.  
  10. /**
  11.  *
  12.  * @author luis
  13.  */
  14. public class ConexionPollito {
  15.  
  16.    private Connection conection = null;
  17.  
  18.    public Connection getConection() {
  19.        if (conection == null) {
  20.            try {
  21.                Driver driver = new com.mysql.jdbc.Driver();
  22.                DriverManager.registerDriver(driver);
  23.                conection = DriverManager.getConnection("jdbc:mysql://localhost:3306/pollitosperu", "root", "root");
  24.            } catch (SQLException ex) {
  25.                ex.printStackTrace();
  26.                Logger.getLogger(ConexionPollito.class.getName()).log(Level.SEVERE, null, ex);
  27.            }
  28.        }
  29.        return conection;
  30.    }
  31. }
  32.  

Código
  1. package com.pollitosperu.sistemaVentas.datos;
  2.  
  3. import com.pollitosperu.sistemaVentas.comun.Entidades.Interfases.IdaoProducto;
  4. import com.pollitosperu.sistemaVentas.comun.Entidades.Producto;
  5. import java.sql.CallableStatement;
  6. import java.sql.Connection;
  7. import java.sql.ResultSet;
  8. import java.sql.SQLException;
  9. import java.util.ArrayList;
  10.  
  11. /**
  12.  *
  13.  * @author luis
  14.  */
  15. public class DBdaoProducto implements IdaoProducto {
  16.  
  17.    private Connection connection = new ConexionPollito().getConection();
  18.  
  19.    public void agreagProducto(Producto producto) {
  20.        try {
  21.            CallableStatement statement = connection.prepareCall("{call agreagaProducto (?,?,?)}");
  22.            statement.setString("nombre", producto.getNombre());
  23.            statement.setInt("cantidad", producto.getCantidad());
  24.            statement.setString("descripcion", producto.getNombre());
  25.            statement.executeUpdate();
  26.        } catch (SQLException ex) {
  27.            ex.printStackTrace();
  28.        }
  29.  
  30.    }
  31.  
  32.    public void eliminaProducto(int codigo) {
  33.        try {
  34.            CallableStatement statement = connection.prepareCall("{call eliminaProducto (?)}");
  35.            statement.setInt("cod", codigo);
  36.            statement.executeUpdate();
  37.        } catch (SQLException ex) {
  38.            ex.printStackTrace();
  39.        }
  40.  
  41.    }
  42.  
  43.    public void modificaProducto(int codigo, Producto producto) {
  44.        try {
  45.            CallableStatement statement = connection.prepareCall("{call modificaProducto (?,?,?,?)}");
  46.            statement.setInt("cod", codigo);
  47.            statement.setString("nom", producto.getNombre());
  48.            statement.setInt("cant", producto.getCantidad());
  49.            statement.setString("descrip", producto.getNombre());
  50.            statement.executeUpdate();
  51.        } catch (SQLException ex) {
  52.            ex.printStackTrace();
  53.        }
  54.    }
  55.  
  56.    public ArrayList<Producto> listaProductos() {
  57.        ArrayList<Producto> productos = new ArrayList<Producto>();
  58.        try {
  59.            CallableStatement statement = connection.prepareCall("{call listaProductos }");
  60.            ResultSet resultSet = statement.executeQuery();
  61.            while (resultSet.next()) {
  62.                Producto producto = new Producto();
  63.                producto.setNombre(resultSet.getString("nombre"));
  64.                producto.setCodigo(resultSet.getInt("codigo"));
  65.                producto.setCantidad(resultSet.getInt("cantidad"));
  66.                producto.setDescripcion(resultSet.getString("descripcion"));
  67.                productos.add(producto);
  68.            }
  69.            return productos;
  70.        } catch (SQLException ex) {
  71.            ex.printStackTrace();
  72.            return null;
  73.        }
  74.    }
  75. }
  76.  
En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #7 en: 26 Abril 2010, 00:42 am »

Código
  1. package com.pollitosperu.sistemaVentas.logica;
  2.  
  3. import com.pollitosperu.sistemaVentas.comun.Entidades.Interfases.IdaoProducto;
  4. import com.pollitosperu.sistemaVentas.comun.Entidades.Producto;
  5. import com.pollitosperu.sistemaVentas.datos.DBdaoProducto;
  6. import java.util.ArrayList;
  7.  
  8. /**
  9.  *
  10.  * @author luis
  11.  */
  12. public class DaoProducto implements IdaoProducto {
  13.  
  14.    private DBdaoProducto daoProducto = new DBdaoProducto();
  15.  
  16.    public DaoProducto() {
  17.    }
  18.  
  19.  
  20.    public void agreagProducto(Producto producto) {
  21.        daoProducto.agreagProducto(producto);
  22.    }
  23.  
  24.    public void eliminaProducto(int codigo) {
  25.        daoProducto.eliminaProducto(codigo);
  26.    }
  27.  
  28.    public void modificaProducto(int codigo, Producto producto) {
  29.        daoProducto.modificaProducto(codigo, producto);
  30.    }
  31.  
  32.    public ArrayList<Producto> listaProductos() {
  33.        return daoProducto.listaProductos();
  34.    }
  35. }
  36.  

Código
  1. package com.pollitosperu.sistemaVentas.vista;
  2.  
  3. import com.pollitosperu.sistemaVentas.comun.Entidades.Producto;
  4. import com.pollitosperu.sistemaVentas.logica.DaoProducto;
  5. import java.util.ArrayList;
  6. import java.util.Iterator;
  7. import javax.swing.DefaultListModel;
  8.  
  9.  
  10. /**
  11.  *
  12.  * @author luis
  13.  */
  14. public class FrmProducto extends javax.swing.JFrame {
  15.  
  16. ......
  17.  
  18. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  19.  
  20.        DaoProducto daoProducto = new DaoProducto();
  21.        Producto producto = new Producto();
  22.        producto.setNombre(txtnombre.getText());
  23.        producto.setDescripcion(txtDescripcion.getText());
  24.        producto.setCantidad(Integer.parseInt(txtCantidad.getText()));
  25.        daoProducto.agreagProducto(producto);
  26.    }
  27.  
  28.  private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  29.        DaoProducto daoProducto = new DaoProducto();
  30.        daoProducto.eliminaProducto(1);
  31.    }  
  32.  
  33. private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  34.        DaoProducto daoProducto = new DaoProducto();
  35.        ArrayList<Producto> productos = daoProducto.listaProductos();
  36.        Iterator iterator = productos.iterator();
  37.        DefaultListModel defaultListModel = new DefaultListModel();
  38.        jList1.setModel(defaultListModel);
  39.        defaultListModel.clear();
  40.        while (iterator.hasNext()) {
  41.            Producto producto = new Producto();
  42.            producto = (Producto) iterator.next();
  43.            defaultListModel.addElement(producto.getNombre());
  44.        }
  45.  
  46.    }
  47.  
  48.  
  49. private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  50.        DaoProducto daoProducto = new DaoProducto();
  51.        Producto producto = new Producto();
  52.        producto.setNombre(txtnombre.getText());
  53.        producto.setDescripcion(txtDescripcion.getText());
  54.        producto.setCantidad(Integer.parseInt(txtCantidad.getText()));
  55.        daoProducto.modificaProducto(Integer.parseInt(txtcodigo.getText()), producto);
  56.    }    
  57.  
  58. }fin de clase
  59.  
  60.  


« Última modificación: 26 Abril 2010, 00:50 am por sapito169 » En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Ejemplo de 3 capas con java
« Respuesta #8 en: 26 Abril 2010, 00:51 am »

preguntas traumas maleteos y amenasas hacer el post correspondiente   :xD
En línea

Rijhording

Desconectado Desconectado

Mensajes: 41


Ver Perfil
Re: Trauma
« Respuesta #9 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..
En línea

Páginas: [1] 2 3 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ejemplo basico de cola en java
Java
chaarlyyyy 3 15,127 Último mensaje 16 Julio 2010, 06:06 am
por danielo-
un ejemplo de troyano en java « 1 2 »
Java
AngelCruel 10 9,482 Último mensaje 13 Agosto 2010, 18:28 pm
por 1mpuls0
Cálculos Java, mi primner ejemplo
Java
Meta 2 5,808 Último mensaje 9 Febrero 2011, 02:10 am
por Meta
Programacion java por capas
Programación General
tastian 0 2,983 Último mensaje 12 Abril 2013, 20:06 pm
por tastian
3 capas y MVC con Java
Dudas Generales
Panic Fryam All 0 2,137 Último mensaje 11 Noviembre 2021, 18:58 pm
por Panic Fryam All
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines