在asp.net-mvc中保存函数定义的常见做法是什么

在asp.net-mvc中保存函数定义的常见做法是什么,asp.net-mvc,Asp.net Mvc,我有一个问题,不是关于代码,而是关于一个好的实践。 在我的asp.net mvc应用程序中,我需要编写计算最长递增子序列的函数,所以我应该将此函数保存在哪里? 我的意见是在我的项目创建类中创建不同的文件,并在其中添加此函数。您可以从从层的角度考虑您的项目: 您有一个表示层或UI,它由视图和控制器组成,这些视图和控制器决定操作的执行方式和方式 您有一个数据访问层,负责与数据库通信 您有一个业务逻辑层,其中定义了业务规则和域模型 在我的asp.net mvc应用程序中,我需要编写计算最长递增子序

我有一个问题,不是关于代码,而是关于一个好的实践。 在我的asp.net mvc应用程序中,我需要编写计算最长递增子序列的函数,所以我应该将此函数保存在哪里?
我的意见是在我的项目创建类中创建不同的文件,并在其中添加此函数。

您可以从从层的角度考虑您的项目:

  • 您有一个表示层或UI,它由视图和控制器组成,这些视图和控制器决定操作的执行方式和方式
  • 您有一个数据访问层,负责与数据库通信
  • 您有一个业务逻辑层,其中定义了业务规则和域模型
在我的asp.net mvc应用程序中,我需要编写计算最长递增子序列的函数,所以我应该将此函数保存在哪里

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

我的建议是创建一个服务,负责执行这个计算。比如:

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

你应该研究设计模式。SOLID principles等看起来像是一个愚蠢的请求,但可能会为接口添加代码,假设ICalculationService将在其上具有GetLongestIncreasingSubsequence。