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