173 votes

Concepts DTO et DAO et MVC

1) Pourquoi utilisons-nous DTO y DAO et quand devons-nous les utiliser ? Je suis en train de développer un GUI Logiciel Java permettant d'insérer, de modifier et de supprimer des données. Mais j'ai du mal à faire la distinction entre DTO/DAO y Model , View , Controller (MVC) ? Sont-elles similaires, quelle est la meilleure solution à utiliser pour interagir avec une base de données via Java ? GUI .

2) Une chose que je suis vraiment curieux de savoir est si c'est une bonne pratique d'avoir view y Controller dans une classe. Si nous pensons à Netbeans vous pouvez créer GUI Frame Class et ajoutez des composants comme JButton sur le cadre, un double-clic sur le bouton vous amènera à l'écran d'accueil. actionListener (Controller) qui se trouve dans le cadre où les données doivent être affichées à l'utilisateur (View). Ils sont donc dans la même classe. Est-ce que cela va complètement à l'encontre du concept alors ou non ?

Ici c'est ce dont je parle

mauvaise pratique pour avoir la vue et le contrôleur dans une seule classe ?

1 votes

@RomanC a une table de base de données qui contient des événements (eventId,name,date.etc), donc DTO et MVC, même ou différent ?

0 votes

Dans la base de données, vous n'avez pas de DTO mais des objets de base de données.

0 votes

@RomanC dans les classes Java, désolé, j'utilise la structure DTO/DAO ou je devrais utiliser MVC ? quelle est la différence ?

354voto

Petr Points 3706

DTO est l'abréviation de Objet de transfert de données 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, des getters, des setters et des constructeurs.
  • DTO Il n'est pas recommandé d'ajouter des méthodes de logique commerciale à ces classes, mais il est possible d'ajouter des méthodes utilitaires.

DAO est l'abréviation de Objet d'accès aux données Il doit donc encapsuler la logique de récupération, d'enregistrement et de mise à jour des données dans votre stockage de données (une base de données, un système de fichiers, etc.).

Voici un exemple de ce à quoi ressembleraient les interfaces DAO et DTO :

interface PersonDTO {
    String getName();
    void setName(String name);
    //.....
}

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

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

Pour ce qui est de la deuxième question, si vous avez une petite application, c'est tout à fait acceptable, mais si vous voulez suivre le modèle MVC, ce serait il est préférable d'avoir un contrôleur séparé Ce contrôleur contient la logique commerciale de votre cadre dans une classe distincte et envoie des messages à ce contrôleur à partir des gestionnaires d'événements.
Cela permettrait de séparer votre logique commerciale de la vue.

0 votes

La première question concernait la différence entre DTO/DAO et MVC, je crois.

0 votes

Si je voulais ajouter des déclencheurs pour activer/désactiver quelque chose comme l'option PersonDAO.save() je le mettrais directement dans le save() méthode ? De même, pour les compteurs de performance de la base de données, dois-je ajouter des compteurs directement à la méthode save() méthode ? De même, est-il acceptable d'avoir une référence PersonDAO à l'intérieur de PersonDTO ?

5 votes

Je ne suis pas sûr de ce que vous entendez par "contrôleur séparé". D'après mes lectures, le contrôleur dans MVC doit être aussi mince que possible et votre logique métier doit être encapsulée dans vos modèles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X