2011-08-04 67 views
0

我有一個接口,應該實現20個屬性,應該實現所有這些屬性應該返回接口類型或從此接口繼承的任何東西,這些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; } 
} 

我已經簡要介紹了上面的代碼,在接口中只有四種泛型類型。

謝謝。

回答

3

通常,使用接口來避免將代碼綁定到特定的具體類型。

爲什麼你只寫:

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

,因爲如果我實現了這個接口所有屬性都應該是一個確切的接口類型,但沒有什麼實現它這是我的主要問題。感謝您的嘗試。 –