通用接口和面向对象结构的最佳实践

时间:2011-08-04 17:55:25

标签: c# oop generics interface

我有一个类似20个属性的接口应该实现所有这些属性都应该返回一个接口类型或从该接口继承的任何东西,这些属性的每个属性返回的是另一个不同的类型。

有没有比做以下更好的方法?

    public interface IRepository<Product, ProductCategory, Category, ProductImage>
    where Product : IProduct
    where ProductCategory : IProductCategory
    where Category : ICategory
    where ProductImage : IProductImage
{
    IQueryable<Product> Products { get; set; }
    IQueryable<ProductCategory> Products { get; set; }
    IQueryable<Category> Products { get; set; }
    IQueryable<ProductImage> Products { get; set; }
}

我已经简要介绍了上面的代码,在界面中只有四种泛型类型。

感谢。

1 个答案:

答案 0 :(得分:3)

通常,人们使用接口来避免将代码绑定到特定的具体类型。

你为什么要写:

public interface IRepository
{    
    IQueryable<IProduct> Products { get; set; }
    IQueryable<IProductCategory> Products { get; set; }
    IQueryable<ICategory> Products { get; set; }
    IQueryable<IProductImage> Products { get; set; }
}