1) Por que usamos DTO
e DAO
, e quando devemos usá-los. Estou desenvolvendo um GUI
software Java relacionado à inserção, edição e exclusão de dados. Mas eu estou lutando para distinguir entre DTO/DAO
e Model
, View
, Controller
Estrutura (MVC)? Eles são semelhantes, o que é melhor usar ao interagir com o banco de dados por meio de Java GUI
.
2) Uma coisa que me deixa curioso é se é uma boa prática ter view
e Controller
em uma aula. Se pensarmos Netbeans
, você pode criar uma GUI
classe de quadro e adicionar componentes como JButton
o quadro; clicar duas vezes no botão levará ao actionListener
método (Controller) que parece estar no quadro em que os dados serão exibidos ao usuário (Exibir) . Então eles estão na mesma classe. Isso vai completamente contra o conceito então ou não?
Aqui está o que eu estou falando
má prática ter visão e controlador em uma classe?
fonte
Respostas:
DTO
é uma abreviação de Data Transfer Object , por isso é usada para transferir os dados entre classes e módulos do seu aplicativo.DTO
deve conter apenas campos particulares para seus dados, getters, setters e construtores.DTO
não é recomendado adicionar métodos de lógica de negócios a essas classes, mas não há problema em adicionar alguns métodos util.DAO
é uma abreviação de Data Access Object , portanto, deve encapsular a lógica para recuperar, salvar e atualizar dados em seu armazenamento de dados (um banco de dados, um sistema de arquivos, o que for).Aqui está um exemplo de como seriam as interfaces DAO e DTO:
O
MVC
é um padrão mais amplo. O DTO / DAO seria seu modelo no padrão MVC.Ele mostra como organizar todo o aplicativo, não apenas a parte responsável pela recuperação de dados.
Quanto à segunda pergunta, se você tem um aplicativo pequeno, tudo está bem; no entanto, se você deseja seguir o padrão MVC, seria melhor ter um controlador separado , que contivesse a lógica comercial do seu quadro em uma classe separada e envie mensagens para este controlador dos manipuladores de eventos.
Isso separaria sua lógica de negócios da visualização.
fonte