背景:我们的应用程序是一个相当直接的MVC Web应用程序,可以调用服务层。该层使用工作单元模式访问某些存储库,然后将这些对象传递给域级服务以执行某些逻辑。它非常干净,适合我们。
问题:我们现在有一个案例,我们从第三方获得大量xml并需要处理它。该过程相当复杂,需要在此过程中进行各种存储库调用(性能不是问题)。这个逻辑应该与我们所有其他逻辑一起存在于我们的领域。
问题:将接口传递到存储库以供域级服务访问是否干净?
答案 0 :(得分:1)
我认为将这种流程的接口传递到存储库是一种设计气味。也许我误解了,但听起来XML上的处理将在存储库中处理。这是存储意味着什么?即便如此,这应该由一个单独的类来处理,该类仅涉及处理接受存储库接口的XML。
存储库只应关注处理对数据存储的访问。
像这样的进程需要多次调用存储库并不罕见。为了确保您可以对XML处理逻辑进行属性测试,XML处理器应该接受存储库的接口,以便您可以模拟它并单独测试XML处理