шаблон c#Repository: Один репозиторий на подкласс?

Я задаюсь вопросом, создали ли Вы репозиторий для каждого подкласса модели предметной области. Например, существует два класса:

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; }        
}

Вы создали бы и PersonRepository и CustomerRepository или просто PersonRepository, который также сможет выполнить связанные с клиентами запросы?

5
задан skaffman 25 March 2010 в 20:09
поделиться

1 ответ

Это действительно зависит от того, как работает ваш домен. Обычно у вас будет один репозиторий для каждого агрегированного корня (термин DDD, означающий родительский объект, но не в традиционном способе наследования) вашего домена.

Если вы действительно работаете как с человеком, так и с клиентом в рамках своего домена, то для каждого из них подойдет репозиторий. Репозиторий не должен иметь тяжелую реализацию, и репозитории часто могут совместно использовать большую часть своей реализации, особенно при работе с ORM.

Эта страница представляет собой хорошее введение в цели шаблона репозитория. Подход Domain Driven Design - хорошее место для начала.

3
ответ дан 15 December 2019 в 06:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: