在ASP.NET-MVC中保存功能定义的常见实践是什么



我有一个问题,不是关于代码,而是关于一个好的练习。在我的ASP.NET MVC应用中,我需要编写计算最长增加子序列的功能,那么我应该在哪里保存此功能?我的意见是在我的项目创建类中创建不同的文件并在此处添加此功能。

您可以从层次上考虑您的项目:

  • 您有一个演示层或UI,由视图和控制器组成,这些视图和控制器决定如何执行操作以及如何执行。
  • 您有一个数据访问层,负责与数据库进行通信。
  • 您有一个业务逻辑层,在其中定义了业务规则和域模型。

在我的ASP.NET MVC应用中,我需要编写计算最长增加子序列的功能,所以我应该在哪里保存此功能?

您可以通过确定应该负责执行此逻辑的哪一层来回答这一点。这属于演示层吗?当然不是,因为UI不在乎您如何计算子序列。因此,此功能不应放在控制器中。

我的建议是创建一个负责执行此计算的服务。类似:

public class CalculationsService : ICalculationService
{
    public int[] GetLongestIncreasingSubsequence(int [] seq)
    {
        // ...
    }
}

最新更新