沒有界面的倉庫模式有什麼不好?沒有界面的倉庫模式
庫 - 類
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<T>, IProductRepository
)
感謝,安德魯
你沒有足夠的時間寫測試?我希望你有足夠的時間進行調試! – 2011-12-18 14:48:40