Вы можете начать думать о своем проекте с точки зрения слоев:
- У вас есть уровень представления или пользовательский интерфейс, состоящий из представлений и контроллеров, которые определяют, как и как выполняются действия.
- У вас есть уровень доступа к данным, отвечающий за связь с вашей базой данных.
- У вас есть уровень бизнес-логики, в котором определены ваши бизнес-правила и модели предметной области.
В моем приложении asp.net mvc мне нужно написать функцию, которая вычисляет самую длинную увеличивающуюся подпоследовательность, так где я должен сохранить эту функцию?
Вы можете ответить на этот вопрос, определив, какой слой должен бытьотвечает за выполнение этой логики.Это относится к уровню представления?Конечно, нет, поскольку для пользовательского интерфейса не важно, как вы вычисляете подпоследовательность.Так что эту функцию не следует помещать в контроллеры.
Тогда я предлагаю создать службу, которая будет отвечать за выполнение этого вычисления.Что-то вроде:
public class CalculationsService : ICalculationService
{
public int[] GetLongestIncreasingSubsequence(int [] seq)
{
// ...
}
}