对接口和 DTO 使用单独的层



我目前正在进行一项IT研究,我们被要求在多层ASP中使用接口和DTO。Net Core MVC由表示、逻辑/业务和数据访问组成,使用依赖倒置,以便表示和DAL都有对逻辑层的引用。在逻辑和数据处理层之间,我们必须使用数据处理层和接口。我了解两者的概念,也知道如何使用它们。但是,我们可以自己决定是否要为DTO和接口创建单独的层,或者将它们放在逻辑层中。我们还被要求解释为什么我们选择了一个选项而不是另一个。然而,我找不到任何来源说明为什么你会选择其中一个而不是另一个。这就是为什么我在这里问。

所以我的问题是:将DTO和接口放在单独的层中有什么优点和缺点,而将它们放在逻辑层中又有什么优点和缺点?

提前感谢。

将DTO和接口放在一个单独的层中的优点和缺点是什么我想象这样单独的图层:

Core
|
------------
|     |    |
DAL   BLL   PresentationLayer

的优势有:

  • 可以在任何其他图层中使用。所以每一层都可以通过自己的API公开自己的数据,但是在内部它使用自己的类。例如,数据层可以使用内部自己的模型类Person;然而数据层返回PersonDtoBusiness Layer

  • 可以很容易地将这个单独的层引用到其他层中,而不必强制引入不必要的层依赖关系。例如,如果应用程序只使用数据层的一个模型,那么您将不得不引用此层为表示层。

缺点:

  • 重新编译吗?如果您编辑了dto,那么您需要重新编译您的图层并重新编译所有的图层取决于这一层

将它们保留在逻辑层的优点和缺点是什么?

优势:

  • 我不认为这种方法有任何优势

缺点:

  • 当你想在任何其他层中使用dto或接口时,你必须引用整个这个逻辑层。这个逻辑层可以为这个层暴露不必要的API。

相关内容

最新更新