首页 文章

在业务层中反转控制和注入数据层依赖性

提问于
浏览
0

我们正在.net / c#中设计一个分层业务应用程序,我们正在尝试按照我们认为合适的方式遵循SOLID原则 . 可测试性在我们的项目中非常重要,为此我们使用Moq . 除了其他方面,我们使用moq来模拟我们的实体框架上下文 .

由于我们测试的主要目标是主业务层(BL)逻辑,因此可以使用数据访问层(DAL)上下文注入业务层类 . 见下面的例子 . 负责加载数据的BL类的示例构造函数 . 此类注入用于设置访问等的依赖项 .

public LoadDataProcess(KonstruktEntities context, IDataLoadedChecker dataLoadedChecker, ILoadUserBudgetData dataLoader, ISetLineAccess setBudgetLineStatus, ILineAccessFilterHandler budgetDataLineStatusFilterHandler) 
    {
        _context = context;
        _dataLoadedchecker = dataLoadedChecker;
        _dataLoader = dataLoader;
        _setBudgetLineStatus = setBudgetLineStatus;
        _budgetDataLineStatusFilterHandler = budgetDataLineStatusFilterHandler;
    }

现在,还有其他DAL依赖项可以注入我们的BL类 . 由于这些对象在服务层(WCF)中实现,我不喜欢可以注入DAL组件 .

问题是,我们应该将DAL依赖项注入BL类吗?

1 回答

  • 0

    由于您的BL依赖于抽象,因此您遵守依赖性倒置原则(DIP) . 很明显,您的业务层需要与DAL进行通信;实际上没有办法解决这个问题,但由于你依赖于抽象而不是低级组件,所以这很好 .

相关问题