Я прочитал blog about DDD from Matt PettersDDD Хранилище и заводы
и согласно и там сказано, что мы создаем хранилище (интерфейс) для каждого объекта, и после этого мы создаем RepositoryFactory, который собирается дать экземпляры (объявленный как интерфейсы) репозиториев
Это как проект осуществляется с использованием DDD?
я имею в виду, я видел проекты, которые я думал, что они используют DDD, но они звонили каждый хранилищу напрямую, не было ни одного завода не участвует
, а также
почему нам нужно создать столько классов репозитория , почему бы не использовать что-то вроде
public interface IRepository : IDisposable
{
T[] GetAll();
T[] GetAll(Expression<Func> filter);
T GetSingle(Expression<Func> filter);
T GetSingle(Expression<Func> filter, List<Expression<Func>> subSelectors);
void Delete(T entity);
void Add(T entity);
int SaveChanges();
}
Возможно, это может быть что-то, что нарушает принципы SOLID или что-то еще?