Patrones de Diseño en Java - MVC, DAO y DTO PDF
Patrones de Diseño en Java - MVC, DAO y DTO PDF
Patrones de Diseño en Java - MVC, DAO y DTO PDF
Buscar
CATEGORÍA
S
Programación Android
(https://www.ecodeup.
com/category/program
acion-android/) (1)
Programación con
20 noviembre, 2016 (https://www.ecodeup.com/patrones-de- Laravel
diseno-en-java-mvc-dao-y-dto/) Elivar Largo (https://www.ecodeup.
(https://www.ecodeup.com/author/elargo/) com/category/program
acion-con-laravel/) (3)
LOS PATRONES DE DISEÑO EN Programación General
JAVA MVC, DAO, DTO Y CÓMO (https://www.ecodeup.
UTILIZARLOS com/category/program
acion-general/) (6)
Hola que tal, esta vez voy hablar acerca de los
patrones de diseño en Java, especí camente Programación Java EE
(https://www.ecodeup.
de los patrones Modelo Vista Controlador
https://www.ecodeup.com/patrones-de-diseno-en-java-mvc-dao-y-dto/ 1/28
6/12/2018 Patrones de diseño en Java: MVC, DAO y DTO
https://www.ecodeup.com/patrones-de-diseno-en-java-mvc-dao-y-dto/ 2/28
6/12/2018 Patrones de diseño en Java: MVC, DAO y DTO
https://www.ecodeup.com/patrones-de-diseno-en-java-mvc-dao-y-dto/ 4/28
6/12/2018 Patrones de diseño en Java: MVC, DAO y DTO
1 package com.ecodeup.model;
2
3 public class Cliente {
4 private int id;
5 private String nombre;
6 private String apellido;
7
8
9 public Cliente() {
10 }
11
12 public int getId() {
13 return id;
14 }
15 public void setId(int id) {
16 this.id = id;
17 }
18 public String getNombre() {
19 return nombre;
20 }
21 public void setNombre(String nombre) {
22 this.nombre = nombre;
23 }
24 public String getApellido() {
25 return apellido;
26 }
27 public void setApellido(String apellido) {
28 this.apellido = apellido;
29 }
30 }
https://www.ecodeup.com/patrones-de-diseno-en-java-mvc-dao-y-dto/ 5/28
6/12/2018 Patrones de diseño en Java: MVC, DAO y DTO
1 package com.ecodeup.controller;
2
3 import com.ecodeup.model.Cliente;
4 import com.ecodeup.view.ClienteView;
5
6 public class ClienteController {
7 //objetos vista y modelo
8 private ClienteView vista;
9 private Cliente modelo;
10
11 //constructor para inicializar el modelo y
12 public ClienteController(Cliente modelo, Cl
13 this.modelo = modelo;
14 this.vista = vista;
15 }
16
17 //getters y setters para el modelo
18 public int getId() {
19 return modelo.getId();
20 }
21 public void setId(int id) {
22 this.modelo.setId(id);
23 }
24 public String getNombre() {
25 return modelo.getNombre();
26 }
27 public void setNombre(String nombre) {
28 this.modelo.setNombre(nombre);
29 }
30 public String getApellido() {
31 return modelo.getApellido();
32 }
33 public void setApellido(String apellido) {
34 this.modelo.setApellido(apellido);
35 }
36
37 //pasa el modelo a la vista para presentar
38 public void actualizarVista() {
39 vista.imprimirDatosCliente(modelo.getId
40 }
41 }
https://www.ecodeup.com/patrones-de-diseno-en-java-mvc-dao-y-dto/ 6/28
6/12/2018 Patrones de diseño en Java: MVC, DAO y DTO
1 package com.ecodeup.mvc;
2
3 import com.ecodeup.controller.ClienteController
4 import com.ecodeup.model.Cliente;
5 import com.ecodeup.view.ClienteView;
6
7 public class MvcDemo {
8
9 public static void main (String [] args){
10 // objeto vista, y modelo creado con el
11 Cliente modelo= llenarDatosCliente();
12 ClienteView vista= new ClienteView();
13
14 //se crea un objeto controlador y se le
15 ClienteController controlador= new Clie
16
17 // se muestra los datos del cliente
18 controlador.actualizarVista();
19
20 // se actualiza un cliente y se muestra
21 controlador.setNombre("Luis");
22 controlador.actualizarVista();
23 }
24 //método estático que retorna el cliente co
25 private static Cliente llenarDatosCliente()
26 Cliente cliente = new Cliente();
27 cliente.setId(1);
28 cliente.setNombre("Elivar");
29 cliente.setApellido("Largo");
30 return cliente;
31 }
32 }
1 package com.ecodeup.bo;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import com.ecodeup.vo.ClienteVO;
7
8 public class ClienteBO {
9
10 //lista de tipo cliente
11 List<ClienteVO> clientes;
12
13
14 //constructor, se guarda en la lista 2 clie
15 public ClienteBO() {
16 clientes = new ArrayList<>();
17 ClienteVO cliente1= new ClienteVO(0,"El
18 ClienteVO cliente2= new ClienteVO(1,"Pr
19 clientes.add(cliente1);
20 clientes.add(cliente2);
21 }
22
23 //elimina el cliente que se le pasa como pa
24 public void eliminarCliente(ClienteVO clien
25 clientes.remove(cliente.getId());
26 System.out.println("Cliente "+cliente.g
27 }
28
29 //obtiene toda la lista de clientes
30 public List<ClienteVO> obtenerClientes(){
31 return clientes;
32 }
33
34 //obtiene un cliente de acuerdo al id pasad
35 public ClienteVO obtenerCliente(int id) {
36 return clientes.get(id);
37 }
38
39 // actualiza el cliente que se le pasa como
40 public void actualizarCliente(ClienteVO cli
41 clientes.get(cliente.getId()).setNombre
42 clientes.get(cliente.getId()).setApellid
43 System.out.println("Cliente id: "+ clie
44 }
45 }
https://www.ecodeup.com/patrones-de-diseno-en-java-mvc-dao-y-dto/ 9/28
6/12/2018 Patrones de diseño en Java: MVC, DAO y DTO
1 package com.ecodeup.dto;
2
3 import com.ecodeup.bo.ClienteBO;
4 import com.ecodeup.vo.ClienteVO;
5
6 public class DTODemo {
7 public static void main(String[] args) {
8 //objeto business object
9 ClienteBO clienteBusinessObject = new C
10
11 //obtiene todos los clientes
12 clienteBusinessObject.obtenerClientes()
13
14 // actualiza un cliente
15 System.out.println("****");
16 ClienteVO cliente = clienteBusinessObje
17 cliente.setNombre("Luis");
18 clienteBusinessObject.actualizarCliente
19
20 // obtiene un cliente
21 System.out.println("****");
22 cliente=clienteBusinessObject.obtenerCl
23 System.out.println(cliente);
24
25 //elimina un cliente
26 System.out.println("****");
27 cliente=clienteBusinessObject.obtenerCl
28 clienteBusinessObject.eliminarCliente(c
29 }
30 }
1 package com.ecodeup.idao;
2
3 import java.util.List;
4
5 import com.ecodeup.model.Cliente;
6
7 public interface IClienteDao {
8 //declaración de métodos para acceder a la
9 public List<Cliente> obtenerClientes();
10 public Cliente obtenerCliente(int id);
11 public void actualizarCliente(Cliente clien
12 public void eliminarCliente(Cliente cliente
13 }
Se implementa en la clase
ClienteDaoImpl.java haciendo un implements
de la interface IClienteDao.java, lo que se hace
aquí, no es más que implementar cada método
de la interface.
https://www.ecodeup.com/patrones-de-diseno-en-java-mvc-dao-y-dto/ 12/28
6/12/2018 Patrones de diseño en Java: MVC, DAO y DTO
1 package com.ecodeup.dao;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import com.ecodeup.idao.*;
7 import com.ecodeup.model.Cliente;
8
9 public class ClienteDaoImpl implements ICliente
10
11 //lista de tipo cliente
12 List<Cliente> clientes;
13
14 //inicializar los objetos cliente y añadirl
15 public ClienteDaoImpl() {
16 clientes = new ArrayList<>();
17 Cliente cliente1 = new Cliente(0,"Javie
18 Cliente cliente2 = new Cliente(1,"Lilli
19 clientes.add(cliente1);
20 clientes.add(cliente2);
21 }
22
23 //obtener todos los clientes
24 @Override
25 public List<Cliente> obtenerClientes() {
26 return clientes;
27 }
28
29 //obtener un cliente por el id
30 @Override
31 public Cliente obtenerCliente(int id) {
32 return clientes.get(id);
33 }
34
35 //actualizar un cliente
36 @Override
37 public void actualizarCliente(Cliente clien
38 clientes.get(cliente.getId()).setNombre
39 clientes.get(cliente.getId()).setApelli
40 System.out.println("Cliente con id: "+c
41 }
42
43 //eliminar un cliente por el id
44 @Override
45 public void eliminarCliente(Cliente cliente
46 clientes.remove(cliente.getId());
47 System.out.println("Cliente con id: "+c
48 }
49 }
https://www.ecodeup.com/patrones-de-diseno-en-java-mvc-dao-y-dto/ 13/28
6/12/2018 Patrones de diseño en Java: MVC, DAO y DTO
1 package com.ecodeup.daodemo;
2
3 import com.ecodeup.dao.ClienteDaoImpl;
4 import com.ecodeup.idao.IClienteDao;
5 import com.ecodeup.model.Cliente;
6
7 public class DaoDemo {
8
9 public static void main(String[] args) {
10 // objeto para manipular el dao
11 IClienteDao clienteDao = new ClienteDao
12
13 // imprimir los clientes
14 clienteDao.obtenerClientes().forEach(Sy
15
16 // obtner un cliente
17 Cliente cliente = clienteDao.obtenerCli
18 cliente.setApellido("Pardo");
19 //actualizar cliente
20 clienteDao.actualizarCliente(cliente);
21
22 // imprimir los clientes
23 System.out.println("*****");
24 clienteDao.obtenerClientes().forEach(Sy
25 }
26 }