31
我已經看到了兩種不同的創建通用資源庫的方法。這兩種方法(利弊)有什麼區別? 請diregard差異的方法,因爲我感興趣的通用資源庫 - IRepository <T>或IRepository
public interface IRepository<T> where T : class
和
public interface IRepository : IDisposable
之間也是有差別的在功能性,靈活性,單元測試有什麼區別...?我會得到或失去什麼?
它們在依賴注入框架中註冊的方式有什麼不同嗎?
選項1
public interface IRepository<T> where T : class
{
T Get(object id);
void Attach(T entity);
IQueryable<T> GetAll();
void Insert(T entity);
void Delete(T entity);
void SubmitChanges();
}
選項2
public interface IRepository : IDisposable
{
IQueryable<T> GetAll<T>();
void Delete<T>(T entity);
void Add<T>(T entity);
void SaveChanges();
bool IsDisposed();
}
當我的實體有非常不同的方法時,我不建議爲每個實體實施IRepository,因爲每個實體都會有一個空的實現,它可能根本不會使用。 只有當你的實體有很多常用的方法時,你的Repository類纔會最終包含空方法才能執行IRepository 。 –
msfanboy
2010-05-18 08:56:31
我不認爲一個空洞的方法就像一個巨大的,世界末日的太陽天才一樣危險。 – ProfK 2013-03-10 10:31:04