1) ¿Por qué usamos DTO
y DAO
, y cuando debemos usarlos. Estoy desarrollando un GUI
software Java que tiene que ver con insertar, editar y eliminar datos. Pero estoy luchando para distinguir entre DTO/DAO
e Model
, View
, Controller
Estructura (MVC)? Son similares, lo cual es mejor usar cuando interactúa con la base de datos a través de Java GUI
.
2) Una cosa que realmente me interesa es si es una buena práctica tenerla view
y Controller
en una clase. Si pensamos en ello Netbeans
, puede crear la GUI
Clase de cuadro y agregar componentes como JButton
en el cuadro, haciendo doble clic en el botón lo llevará al actionListener
método (Controlador) que parece estar en el cuadro donde los datos se mostrarán al usuario (Ver) . Entonces están en la misma clase. ¿Eso va completamente en contra del concepto entonces o no?
Aquí es lo que estoy hablando
¿Es una mala práctica tener vista y controlador en una clase?
fuente
Respuestas:
DTO
es una abreviatura de Data Transfer Object , por 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, captadores, establecedores y constructores.DTO
No se recomienda agregar métodos de lógica de negocios a tales clases, pero está bien agregar algunos métodos de utilidad.DAO
es una abreviatura de Data Access Object , por 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:
El
MVC
es un patrón más amplio. El DTO / DAO sería su modelo en el patrón MVC.Le indica 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 separado , que contendría la lógica de negocios para su marco en una clase separada y enviar mensajes a este controlador desde los controladores de eventos.
Esto separaría su lógica de negocios de la vista.
fuente