Шаблон репозитория без интерфейсов

что плохого в реализации шаблона репозитория без интерфейсов?

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: методы репозитория и переопределения \ расширения.

Я знаю, что интерфейсы позволяют нам:

  • Использовать методы TDD
  • Заменить механизм устойчивости

Но если я не хочу заменять свой nhibernate и у меня нет времени на написание тестов. Итак, каковы еще преимущества использования классического шаблона репозитория (с IRepository , IProductRepository )

Спасибо, Эндрю

0
задан Andrew Kalashnikov 18 December 2011 в 14:41
поделиться