MVC设计模式

coo*_*ist 3 model-view-controller

我已经阅读了很多关于MVC设计模式的内容,但有些事情对我来说仍然不清楚.我知道"模型"用于数据和业务逻辑,"视图"用于表示,"控制器"用于使用"模型"并提供"视图"(即C是M和V之间的通信通道).

现在,我想解决以下问题:

问题: Web应用程序将来自用户的节点列表作为输入.然后,使用模型从这些节点(使用数据库)中制作图表(即数据结构图而不是xy图).

然后我使用Dijkstra算法找出该图中从起始节点到结束节点的最短路径.我是在模型还是控制器中使用Dijkstra算法?

我想我应该使用Model层,因为"最短路径"本身就是数据.

但有时,我认为我应该将它放在Controller中,因为它使用模型(图形和节点列表)来做某事.

谁能给我正确答案?现在我将在模型层中实现Dijkstra的算法.

Rav*_*har 8

是的,你是对的.你应该把你的Dijkstra算法放在模型中.原因是你明天可能会使用不同的算法来找到最短路径,所以在这种情况下你不需要改变你的控制器,只需改变实现算法的类的逻辑.并且应该将该算法的结果合并到视图中.