Concepts DTO et DAO et MVC

1) Pourquoi utilisons-nous DTO et DAO , et quand devrions-nous les utiliser? Je développe un logiciel Java basé sur l’ GUI consiste à insérer, éditer, supprimer des données. Mais j’ai du mal à faire la 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 firebase database via Java GUI .

2) Une chose que je suis vraiment curieux est de savoir si c’est une bonne pratique d’avoir une view et un Controller dans une classe. Si nous pensons à Netbeans , vous pouvez créer une classe Frame GUI et append des composants comme JButton sur le cadre, double-cliquer sur le bouton vous actionListener méthode actionListener (Controller) qui semble être dans le cadre où les données doivent être affichées. utilisateur (vue). Donc, ils sont dans la même classe. Est-ce que cela va complètement à l’encontre du concept alors ou pas?

 Here is what Im talking about 

mauvaise pratique d’avoir vue et contrôleur dans une classe?

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 devrait contenir que des champs privés pour vos données, getters, setters et constructeurs. Il n’est pas recommandé d’append des méthodes de logique métier à de telles classes, mais il est correct d’append des méthodes util.

DAO est une abréviation de Data Access Object, il convient donc d’encapsuler la logique de récupération, d’enregistrement et de mise à jour des données dans votre stockage de données (une firebase database, un système de fichiers, etc.). Voici un exemple de l’apparence des interfaces DAO et DTO:

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

Le MVC est un modèle plus large. Le DTO / DAO serait votre modèle dans le modèle MVC. Il vous explique comment organiser l’ensemble de l’application, pas seulement la partie responsable de la récupération des données.

En ce qui concerne la deuxième question, si vous avez une petite application, elle est totalement correcte. Toutefois, si vous souhaitez suivre le modèle MVC, il serait préférable d’avoir un contrôleur distinct qui contiendrait la logique métier de votre cadre dans une classe distincte. envoyer des messages à ce contrôleur à partir des gestionnaires d’événements. Cela séparerait votre logique métier de la vue.