Concepts DTO et DAO et MVC [fermé]

1) Pourquoi devons-nous utiliser DTO et DAO et quand doit-on les utiliser. Je développe un logiciel Java GUI pour 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 base de données via Java GUI.

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

<a href="http://www.youtube.com/watch?v=Iwwznm9XSME">Here is what Im talking about</a>

Mauvaise pratique pour avoir une vue et un contrôleur dans une classe?

82
demandé sur Archer 2013-01-16 23:15:42

1 réponses

DTO est une abréviation pour 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. Il n'est pas recommandé d'ajouter des méthodes de logique métier à ces classes, mais il est correct 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, d'enregistrement et de mise à jour des données dans votre stockage de données (a base de données, un système de fichiers, peu importe). Voici un exemple à 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);
    //.....
}

Le 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, 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 complètement OK, mais 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 expédierait des messages à ce contrôleur à partir des gestionnaires d'événements. Cela séparerait votre logique métier de la vue.

182
répondu Petr 2014-03-20 06:34:16