7

我在 ASP.NET MVC 应用程序中使用存储库模式(如https://dotnet.microsoft.com/apps/aspnet/mvc站点中的示例)。我有两个存储库,一个称为 CategoryRepository,另一个称为 ProductRepository。我还使用了两个服务,即 CategoryService 和 ProductService 来验证和调用存储库方法。我需要 ProductService 中的类别列表,返回一个的方法已经在 CategoryRepository 中实现。我的问题是,从 ProductService 调用 CategoryRepository 中存在的 ListCategories 方法的正确方法是什么?我不想在 ProductRepository 中实现另一个 ListCategories 方法(DRY 哲学)。谢谢。

4

2 回答 2

4

我建议将类似的存储库整合到一项服务中。因此,如果您正在创建一个电子商务应用程序,请将 ProductRepository、CategoryRepository 等汇总到 CatalogService 之类的东西中,并让它托管所有相关的存储库。

于 2009-03-22T14:37:30.100 回答
3

一种选择是为 ProductService 类提供 CategoryService 的实例。

public class ProductService {
    ICategoryService _categoryService = null;

    public ProductService(ICategoryService categoryService) {
        _categoryService = categoryService;
    }
}

然后,您可以从 ProductService 访问类别列表,而无需建立与任何特定 CategoryService 实现的直接耦合。

于 2009-03-22T06:33:11.700 回答