Conceptos DTO y DAO y MVC [closed]

4 minutos de lectura

avatar de usuario
con capucha

1) ¿Por qué usamos DTO y DAOy cuándo debemos usarlos. estoy desarrollando un GUI Software Java para hacer con la inserción, edición, borrado de datos. Pero me cuesta distinguir entre DTO/DAO y Model, View, Controller (MVC) ¿Estructura? ¿Son similares, que es mejor usar al interactuar con la base de datos a través de Java? GUI.

2) Una cosa que realmente me intriga es si es una buena práctica tener view y Controller en una clase si pensamos en Netbeanspuedes crear GUI Frame Class y agregue componentes como JButton en el marco, haciendo doble clic en el botón le llevará a la actionListener método (Controlador) que parece estar en el cuadro, los datos se mostrarán al usuario (Ver). Así que están en la misma clase. ¿Entonces eso va completamente en contra del concepto o no?

Aquí es de lo que estoy hablando

¿Mala práctica tener vista y controlador en una clase?

  • @RomanC tiene una tabla de base de datos que contiene eventos (eventId, nombre, fecha, etc.), por lo que DTO y MVC, ¿igual o diferente?

    – Sudadera con capucha

    16 de enero de 2013 a las 19:24

  • En la base de datos no tiene DTO sino objetos de base de datos.

    – Romano C

    16 de enero de 2013 a las 19:27

  • @RomanC en las clases de Java lo siento, ¿usando la estructura DTO/DAO o debería usar MVC? cuál es la diferencia

    – Sudadera con capucha

    16 de enero de 2013 a las 19:29

  • leer este y que comprueba la diferencia

    – Romano C

    16 de enero de 2013 a las 19:32

  • ¿Leíste sobre la base de datos en la segunda definición?

    – Romano C

    16 de enero de 2013 a las 19:35

avatar de usuario
petr

DTO es una abreviatura de Objeto de transferencia de datospor lo que se utiliza para transferir los datos entre clases y módulos de su aplicación.

  • DTO solo debe contener campos privados para sus datos, getters, setters y constructores.
  • DTO No se recomienda agregar métodos de lógica empresarial a dichas clases, pero está bien agregar algunos métodos de utilidad.

DAO es una abreviatura de Objeto de acceso a datospor lo que debe encapsular la lógica para recuperar, guardar y actualizar datos en su almacenamiento de datos (una base de datos, un sistema de archivos, lo que sea).

Aquí hay un ejemplo de cómo se verían las interfaces DAO y DTO:

interface PersonDTO {
    String getName();
    void setName(String name);
    //.....
}

interface PersonDAO {
    PersonDTO findById(long id);
    void save(PersonDTO person);
    //.....
}

los MVC es un patrón más amplio. El DTO/DAO sería su modelo en el patrón MVC.
Le dice cómo organizar toda la aplicación, no solo la parte responsable de la recuperación de datos.

En cuanto a la segunda pregunta, si tiene una aplicación pequeña, está completamente bien, sin embargo, si desea seguir el patrón MVC, sería mejor tener un controlador separadoque contendría la lógica comercial para su marco en una clase separada y enviaría mensajes a este controlador desde los controladores de eventos.
Esto separaría su lógica comercial de la vista.

  • Probablemente entendí mal la pregunta.

    – Petr

    16/01/2013 a las 19:50

  • No estoy seguro de lo que quiere decir con “controlador separado”. Según mis lecturas, el controlador en MVC debe ser lo más delgado posible y su lógica comercial debe estar encapsulada en sus modelos.

    –Paul Carlton

    8 de noviembre de 2016 a las 1:03

  • Usar DTO para interactuar con el modelo de objetos es una práctica terrible. void save(PersonDTO person) es puro cáncer.

    – ben

    9 de junio de 2017 a las 12:45

  • ¿Por qué necesitamos DTO cuando tenemos objetos de clase como POJO? no son los dos iguales?

    – Bhargav

    20 de junio de 2017 a las 14:08

  • Los DTO de @Bhargav se utilizan para devolver resultados combinados de varias entidades (POJO) o recursos limitados de una entidad.

    – El codificador

    21 de febrero de 2019 a las 18:44

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad