1) Pourquoi utilisons-nous DTO
et DAO
, et quand devrions - nous les utiliser. Je développe un GUI
logiciel Java pour insérer, éditer, supprimer des données. Mais je me bats pour établir une distinction entre DTO/DAO
et Model
, View
, Controller
(MVC) Structure? Sont-ils similaires, ce qui est préférable d'utiliser lors de l'interaction avec la base de données via Java GUI
.
2) Une chose qui m'intéresse vraiment est de savoir si c'est une bonne pratique à avoir view
et Controller
dans une classe. Si nous y réfléchissons Netbeans
, vous pouvez créer une GUI
classe de cadre et ajouter des composants comme JButton
sur le cadre, un double-clic sur le bouton vous amènera à la actionListener
méthode (contrôleur) qui semble être dans le cadre où les données doivent être affichées à l'utilisateur (vue) . Ils sont donc dans la même classe. Cela va-t-il complètement à l'encontre du concept ou non?
Voici de quoi je parle
mauvaise pratique d'avoir vue et contrôleur dans une seule classe?
la source
Réponses:
DTO
est une abréviation de Data Transfer Object , il est donc utilisé pour transférer les données entre les classes et les modules de votre application.DTO
ne doit contenir que des champs privés pour vos données, getters, setters et constructeurs.DTO
n'est pas recommandé d'ajouter des méthodes de logique métier à de telles classes, mais il est acceptable d'ajouter des méthodes util.DAO
est une abréviation pour Data Access Object , il doit donc encapsuler la logique de récupération, de sauvegarde et de mise à jour des données dans votre stockage de données (une base de données, un système de fichiers, peu importe).Voici un exemple de l'apparence des interfaces DAO et DTO:
Le
MVC
modèle est plus large. Le DTO / DAO serait votre modèle dans le modèle MVC.Il vous indique comment organiser l'ensemble de l'application, pas seulement la partie responsable de la récupération des données.
Quant à la deuxième question, si vous avez une petite application, c'est tout à fait OK, cependant, si vous voulez suivre le modèle MVC, il serait préférable d'avoir un contrôleur séparé , qui contiendrait la logique métier de votre cadre dans une classe distincte et envoyer des messages à ce contrôleur à partir des gestionnaires d'événements.
Cela séparerait votre logique métier de la vue.
la source