Ich habe .NET Domain-Driven Design mit C # gelesen : Problem - Design - Lösung und festgestellt, dass der Autor für jeden Aggregatstamm einen Domänendienst erstellt hat.
Die Domänendienste waren jedoch nur Fassaden des entsprechenden Repositorys. Zum Beispiel ist dies ein Codebeispiel aus der Anwendung aus seinem Buch
public static class CompanyService
{
private static ICompanyRepository repository;
private static IUnitOfWork unitOfWork;
static CompanyService()
{
CompanyService.unitOfWork = new UnitOfWork();
CompanyService.repository =
RepositoryFactory.GetRepository<ICompanyRepository,
Company>(CompanyService.unitOfWork);
}
public static IList<Company> GetOwners()
{
return CompanyService.GetAllCompanies();
}
public static IList<Company> GetAllCompanies()
{
return CompanyService.repository.FindAll();
}
public static void SaveCompany(Company company)
{
CompanyService.repository[company.Key] = company;
CompanyService.unitOfWork.Commit();
}
public static Company GetCompany(object companyKey)
{
return CompanyService.repository.FindBy(companyKey);
}
}
Wie Sie sehen, sind fast alle Aufrufe der Dienste Wrapper für Repository-Aufrufe. Ist dies ein gutes Muster beim Aufbau von Domänendiensten?
Sollten wir unsere Repositorys immer in Domänendienste verpacken? Gibt es einen besseren Ansatz?
GetAllCompanies()
Wraps repository.FindAll()
. Warum kann ich nicht repository.GetAllCompanies()
stattdessen einfach eine Repository-Methode erstellen ?!