Quelle est la différence entre le Mapper des Données, les Données de la Table de la Passerelle (Gateway), DAO (Data Access Object) d'un Référentiel et de modèles?

Je suis en train de balayer vers le haut sur mon modèle de conception de compétences, et je suis curieux de savoir quelles sont les différences entre ces modèles? Tous semblent comme ils sont de la même chose - encapsuler la logique de base de données pour une entité spécifique, de sorte que le code appelant n'a pas connaissance de la sous-couche de persistance. De mon mémoire de recherche tous généralement en œuvre de votre standard méthodes CRUD et d'abstraction de la base de données des informations spécifiques.

En dehors de conventions de nommage (par exemple CustomerMapper vs CustomerDAO vs CustomerGateway vs CustomerRepository), quelle est la différence, le cas échéant? Si il y a une différence, quand vous avez choisi l'un sur l'autre?

Dans le passé, je voudrais écrire un code semblable au suivant (simplifié, naturellement, je n'aurais pas l'habitude d'utiliser les propriétés publiques):

public class Customer
{
    public long ID;
    public string FirstName;
    public string LastName;
    public string CompanyName;
}

public interface ICustomerGateway
{
    IList<Customer> GetAll();
    Customer GetCustomerByID(long id);
    bool AddNewCustomer(Customer customer);
    bool UpdateCustomer(Customer customer);
    bool DeleteCustomer(long id);
}

et ont un CustomerGateway classe qui implémente la base de données spécifique de la logique pour toutes les méthodes. Parfois, je ne serait pas l'utilisation d'une interface et d'effectuer toutes les méthodes sur la CustomerGateway statique (je sais, je sais, ce qui la rend moins vérifiables) donc je peux l'appeler comme:

Customer cust = CustomerGateway.GetCustomerByID(42);

Ce qui semble être le même principe pour le Mapper des Données d'un Référentiel et de modèles; le pattern DAO (qui est la même chose que le Gateway, je pense?) semble également favoriser la base de données spécifiques à des passerelles.

Suis-je raté quelque chose? Il semble un peu bizarre d'avoir 3-4 façons différentes de faire la même chose exacte.

InformationsquelleAutor Wayne Molina | 2009-04-29