con capucha
1) ¿Por qué usamos DTO
y DAO
y 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 Netbeans
puedes 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?
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
@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