2010-03-25 12 views
5

Me pregunto si crearía un repositorio para cada subclase de un modelo de dominio. Hay dos clases: por ejemploC# Patrón de repositorio: ¿un repositorio por subclase?

 
public class Person 
{ 
    public virtual String GivenName { set; get; } 
    public virtual String FamilyName { set; get; } 
    public virtual String EMailAdress { set; get; }  
} 

public class Customer : Person 
{ 
    public virtual DateTime RegistrationDate { get; set; } 
    public virtual String Password { get; set; }   
} 

¿Le crear tanto un PersonRepository y una CustomerRepository o simplemente el PersonRepository que también sería capaz de ejecutar consultas relacionadas con los clientes?

Respuesta

3

Realmente depende de cómo funciona su dominio. Por lo general, tendrías un Repositorio por cada Aggregate Root (un término DDD que significa una entidad padre, pero no en la forma de herencia tradicional) de tu dominio.

Si realmente trabaja con Persona y Cliente como parte de su dominio, entonces un Repositorio para cada uno es adecuado. Un repositorio no necesita una implementación complicada, y los repositorios a menudo pueden compartir gran parte de su implementación, especialmente cuando se trabaja con un ORM.

This page es una buena introducción a los objetivos del patrón de repositorio. El enfoque Domain Driven Design es un buen lugar para comenzar.

Cuestiones relacionadas