Я много читал о шаблоне проектирования MVC, но некоторые вещи до сих пор не ясны. Я знаю, что «Модель» предназначена для данных и бизнес-логики, «Вид» предназначен для представления, а «Контроллер» предназначен для использования «Модели» и предоставления «Представлений» (т. Е. C - канал связи между M и V).MVC Design Pattern
Теперь у меня есть следующая проблема, я хочу, чтобы решить:
Проблема: Веб-приложение принимает в качестве входных данных, список узлов от пользователя. Затем модель используется для создания графика (т. Е. Диаграммы структуры данных, а не графика x-y) из этих узлов (с использованием базы данных).
Затем я использую алгоритм Дейкстры, чтобы узнать кратчайший путь от исходного узла до конечного узла в этом графе. Использую ли я алгоритм Дейкстры в Модели или Контроллере?
Я думаю, что я должен использовать слой «Модель», потому что сам «самый короткий путь» - это данные.
Но иногда я думаю, что должен поместить его в контроллер, потому что он использует модели (график и список узлов), чтобы что-то сделать.
Может ли кто-нибудь дать мне правильный ответ? Пока я собираюсь реализовать алгоритм Дейкстры в модельном слое.
Это очень хорошая причина. Я так не думал. Спасибо – coolscitist
Был еще один ответ на мой вопрос, но я не знаю, куда он пошел сейчас. Он сказал, что АЛГОРИТМ ДИЙКСТРА должен быть в КОНТРОЛЛЕЛЕ, и его результат, т. Е. КОРОТВОРНАЯ ПУТЬ должна быть МОДЕЛЬ. Я думаю, что это правильный ответ – coolscitist
Я так не думаю. Ни алгоритм, ни результат не должны быть в контроллере. И, конечно, контроллер помогает вам разговаривать между представлением и моделью. И я снова говорю, что шаги алгоритма (фактическая реализация) должны быть в модели. –