что плохого в реализации шаблона репозитория без интерфейсов?
Repository - class
public class WebRepository<T>
{
private readonly Type persitentType = typeof(T);
public virtual T GetById(int id)
{
return NHibernateSession.Get<T>(id);
}
public virtual List<T> GetAll()
{
return GetByCriteria();
}
public List<T> GetByCriteria(params ICriterion[] criterion)
{
ICriteria criteria = NHibernateSession.CreateCriteria(persitentType);
foreach (ICriterion criterium in criterion)
criteria.Add(criterium);
return criteria.List<T>() as List<T>;
}
public T Save(T entity)
{
NHibernateSession.Save(entity);
return entity;
}
public T SaveOrUpdate(T entity)
{
NHibernateSession.Update(entity);
return entity;
}
public void Delete(T entity)
{
NHibernateSession.Delete(entity);
}
private ISession NHibernateSession
{
get
{
return SessionManager.CurrentSession;
}
}
}
если мы хотим расширить репозиторий, который мы используем ProductRepository: методы репозитория и переопределения \ расширения.
Я знаю, что интерфейсы позволяют нам:
Но если я не хочу заменять свой nhibernate и у меня нет времени на написание тестов. Итак, каковы еще преимущества использования классического шаблона репозитория (с IRepository
)
Спасибо, Эндрю