近来看了一些外国人写的书籍,
发现了一个不太习惯的地方:
那就是他们写程序的时候喜欢写一个接口 , 比如:
public interface IProductRepository
{
IQueryable<Product> Products { get; }
void SaveProduct(Product product);
void DeleteProduct(Product product);
}//end interface
然后写一个具体的类来继承接口
public class EFProductRepository : IProductRepository
{
//具体不写了
}
最后就是将类模型绑定到 ninject 中
ninjectKernel.Bind<IProductRepository>().To<EFProductRepository>();
后面程序里面用的时候,就用:
IProductRepository repository这个就行了!!
我的问题是:为什么一开始不直接写具体的EFProductRepository , 用的时候就直接用EFProductRepository ,接口看起来很多余!
我看别人的说法是:使用di容器(比如刚才的ninject)可以保持松散耦合,什么叫松散耦合,什么叫依赖性啊??