9
5/21/2018 ProgramacinenCapasjava.pdf-slidepdf.com http://slidepdf.com/reader/full/programacion-en-capas-javapdf 1/9 Programación en Capas Hoy haremos un tema que es bastante interesante y muy usado en el desarrollo de software. Realizaremos un ejemplo de la programación orientada a capas. La programación orientada a capas es una técnica que se usa para el desarrollo de software el cual permita que dicho software sea escalable, mantenible, consistente y que tenga una aspecto mucho más profesional de desarrollo, no como la clásica programación secuencial. La programación orientada a capas se caracteriza por ser un tipo de diseño en el desarrollo de software mediante clases las cuales se separan generalmente en: -La capa de datos. -La capa de negocios. -La capa de presentación. Bien, como se sabe que lo que Ud. quiere es la parte técnica más no la parte teórica, pasaremos a realizar el ejemplo de la programación orientada a capas. Tener en cuenta que la programación en capas generalmente va de la mano con la programación orientada a objetos para la optimización de este. Estructura del proyecto Creamos el proyecto, luego creamos 4 paquetes uno para la capa de datos, otro para la capa de negocio, otro para la capa de presentación y el último para los encapsulamientos. Tener en cuenta que para poder trabajar de forma más ordenada es mejor separar la lógica de negocio de los datos, así mismo sería bueno separar componentes aislados al código fuente en otro paquete como las imágenes, formato de reportes y otros.  Ahora que tenemos los 4 paquetes, creamos en cada uno de ellos la clase respectiva para trabajar. En este caso haremos un ejemplo que consista en manejar mediante la Programación en capas la inserción y lectura de los datos de una persona. Para dicho caso en el paquete de encapsulamiento creamos una clase TPersona, en la capa de datos (Paquete que se creo para los datos) creamos otra clase DbTPersona, en la capa de presentación (Paquete para los formularios) creamos un formulario frmPersona y e la capa de negocio (Paquete para negociar los datos) creamos la clase NegocioFrmPersona. Debemos tener en cuenta que en la Programación sobre capas, generalmente se debe crear un encapsulado y una clase de la capa de datos por cada tabla existente en nuestra base de datos y un negocio por cada formulario el cual será quien maneje toda la negociación de datos entre las capas de datos que se usen en el formulario y la capa de presentación. También recordar que en la capa de datos

Programación en Capas java.pdf

Embed Size (px)

Citation preview

  • Programacin en Capas Hoy haremos un tema que es bastante interesante y muy usado en el desarrollo de software.

    Realizaremos un ejemplo de la programacin orientada a capas.

    La programacin orientada a capas es una tcnica que se usa para el desarrollo de software el cual

    permita que dicho software sea escalable, mantenible, consistente y que tenga una aspecto mucho ms

    profesional de desarrollo, no como la clsica programacin secuencial.

    La programacin orientada a capas se caracteriza por ser un tipo de diseo en el desarrollo de software

    mediante clases las cuales se separan generalmente en:

    -La capa de datos.

    -La capa de negocios.

    -La capa de presentacin.

    Bien, como se sabe que lo que Ud. quiere es la parte tcnica ms no la parte terica, pasaremos a

    realizar el ejemplo de la programacin orientada a capas.

    Tener en cuenta que la programacin en capas generalmente va de la mano con la programacin

    orientada a objetos para la optimizacin de este.

    Estructura del proyecto

    Creamos el proyecto, luego creamos 4 paquetes uno para la capa de datos, otro para la capa de

    negocio, otro para la capa de presentacin y el ltimo para los encapsulamientos. Tener en cuenta que

    para poder trabajar de forma ms ordenada es mejor separar la lgica de negocio de los datos, as

    mismo sera bueno separar componentes aislados al cdigo fuente en otro paquete como las imgenes,

    formato de reportes y otros.

    Ahora que tenemos los 4 paquetes, creamos en cada uno de ellos la clase respectiva para trabajar. En

    este caso haremos un ejemplo que consista en manejar mediante la Programacin en capas la insercin

    y lectura de los datos de una persona. Para dicho caso en el paquete de encapsulamiento creamos una

    clase TPersona, en la capa de datos (Paquete que se creo para los datos) creamos otra clase

    DbTPersona, en la capa de presentacin (Paquete para los formularios) creamos un formulario

    frmPersona y e la capa de negocio (Paquete para negociar los datos) creamos la clase

    NegocioFrmPersona.

    Debemos tener en cuenta que en la Programacin sobre capas, generalmente se debe crear un

    encapsulado y una clase de la capa de datos por cada tabla existente en nuestra base de datos y un

    negocio por cada formulario el cual ser quien maneje toda la negociacin de datos entre las capas de

    datos que se usen en el formulario y la capa de presentacin. Tambin recordar que en la capa de datos

  • se puede crear una clase exclusivamente para las consultas relacionales ya que la programacin

    orientada a objetos que va de la mano con la programacin en capas no permite encapsular este tipo de

    consultas.

    Como en nuestro caso no tenemos una base de datos, simularemos dicho caso con un formulario que

    tenga los campos para registrar una persona que lo pasar a un JTable y luego tendremos un botn que

    permita leer tales datos almacenados en nuestro JTable.

    La estructura de nuestro rbol con las clases creadas debera quedar de la siguiente manera.

    Diseo del formulario

    Con lo mencionado anteriormente, nuestro formulario debera quedar de la siguiente forma.

  • Cdigo Fuente

    La Clase TPersona

    /*

    * To change this template, choose Tools | Templates

    * and open the template in the editor.

    */

    package ENCAPSULAMIENTO;

    /**

    *

    * @author kaaf

    */

    public class TPersona {

    private String nombre;

    private String apellidoPaterno;

    private String apellidoMaterno;

    private String dNI;

    private String direccion;

    private int edad;

    private char sexo;

    public void SetNombre(String nombre)

    {

    this.nombre=nombre;

    }

    public String GetNombre()

    {

    return this.nombre;

    }

    public void SetApellidoPaterno(String apellidoPaterno)

    {

    this.apellidoPaterno=apellidoPaterno;

    }

    public String GetApellidoPaterno()

    {

    return this.apellidoPaterno;

    }

  • public void SetApellidoMaterno(String apellidoMaterno)

    {

    this.apellidoMaterno=apellidoMaterno;

    }

    public String GetApellidoMaterno()

    {

    return this.apellidoMaterno;

    }

    public void SetDNI(String dNI)

    {

    this.dNI=dNI;

    }

    public String GetDNI()

    {

    return this.dNI;

    }

    public void SetDireccion(String direccion)

    {

    this.direccion=direccion;

    }

    public String GetDireccion()

    {

    return this.direccion;

    }

    public void SetEdad(int edad)

    {

    this.edad=edad;

    }

    public int GetEdad()

    {

    return this.edad;

    }

    public void SetSexo(char sexo)

    {

    this.sexo=sexo;

    }

    public char GetSexo()

    {

    return this.sexo;

  • }

    }

    La Clase DbTPersona

    /*

    * To change this template, choose Tools | Templates

    * and open the template in the editor.

    */

    package CAPADEDATOS;

    import ENCAPSULAMIENTO.TPersona;

    import java.util.ArrayList;

    import java.util.List;

    import javax.swing.JTable;

    import javax.swing.table.DefaultTableModel;

    /**

    *

    * @author kaaf

    */

    public class DbTPersona {

    public static DefaultTableModel Registrar(TPersona tPersona, JTable miTabla)

    {

    DefaultTableModel modeloDeDatosTabla=(DefaultTableModel)miTabla.getModel();

    Object[] datosRegistro=

    {

    tPersona.GetNombre(),

    tPersona.GetApellidoPaterno(),

    tPersona.GetApellidoMaterno(),

    tPersona.GetDNI(),

    tPersona.GetDireccion(),

    tPersona.GetEdad(),

    tPersona.GetSexo()

    };

    modeloDeDatosTabla.addRow(datosRegistro);

    return modeloDeDatosTabla;

    }

    public static List LeerTodo(JTable miTablaDeDatos)

  • {

    List listaTPersona=new ArrayList();

    for(int i=0;i

  • miTabla.setModel(DbTPersona.Registrar(tPersona, miTabla));

    }

    catch(Exception ex)

    {

    JOptionPane.showMessageDialog(null, ex.getMessage());

    }

    }

    public List LeerDatosPersona(JTable tablaDeDatos)

    {

    List listaTPersona=new ArrayList();

    try

    {

    listaTPersona=DbTPersona.LeerTodo(tablaDeDatos);

    }

    catch(Exception ex)

    {

    JOptionPane.showMessageDialog(null, ex.getMessage());

    }

    finally

    {

    return listaTPersona;

    }

    }

    }

    Botn "Ingresar Datos"-actionPerformed

    TPersona tPersona=new TPersona();

    tPersona.SetNombre(txtNombre.getText());

    tPersona.SetApellidoPaterno(txtApellidoP.getText());

    tPersona.SetApellidoMaterno(txtApellidoM.getText());

    tPersona.SetDNI(txtDNI.getText());

    tPersona.SetDireccion(txtDireccion.getText());

    tPersona.SetEdad(Integer.parseInt(txtEdad.getText()));

    tPersona.SetSexo(rbM.isSelected() ? rbM.getText().charAt(0) : rbF.getText().charAt(0));

    new NegocioFrmPersona().Registrar(tPersona, jTableDatos);

    Botn "Leer Datos Ingresados"-actionPerformed

  • List listaTPersona=new NegocioFrmPersona().LeerDatosPersona(jTableDatos);

    DefaultTableModel modeloTabla=new DefaultTableModel();

    modeloTabla.addColumn("Nombre");

    modeloTabla.addColumn("Apellido P.");

    modeloTabla.addColumn("Apellido M.");

    modeloTabla.addColumn("DNI");

    modeloTabla.addColumn("Direccin");

    modeloTabla.addColumn("Edad");

    modeloTabla.addColumn("Sexo");

    for(TPersona tPersona:listaTPersona)

    {

    Object[] registroLeido=

    {

    tPersona.GetNombre(),

    tPersona.GetApellidoPaterno(),

    tPersona.GetApellidoMaterno(),

    tPersona.GetDNI(),

    tPersona.GetDireccion(),

    tPersona.GetEdad(),

    tPersona.GetSexo()

    };

    modeloTabla.addRow(registroLeido);

    }

    jTableDatosLeidos.setModel(modeloTabla);

    Compilando la Aplicacin Una vez se realiz todos estos pasos la aplicacin debera correr de la siguiente manera.

  • Tener en cuenta que los datos no fueron validados por lo que debera ingresarse datos correctos sin

    dejar ningn dato vaco.

    Por otro lado, hay cosas que no debera estar; como pasar el JTable desde la capa de presentacin

    hasta la capa de datos. Pero se hace esto porque no se est trabajando con una base de datos real y se

    est tomando como base de datos nuestra primera tabla donde estamos ingresando los datos de la

    persona.

    En un prximo post ya estaremos viendo programacin orientada a objetos con el uso de una base de

    datos real, herencia, polimorfismo entre otros.