Age*_*rum 10 model-view-controller design-patterns application-design
我一直在学习模型 - 视图 - 控制器范例("MVC"),但我很困惑,因为一些教程与其他教程相矛盾.
我目前对这个过程的理解看起来像这样:
这是从某些存储源(如数据库或XML文件)收集原始数据的位置.该模型用作抽象层,将Controller对特定数据的请求转换为(例如)SQL查询,并将查询结果转换为标准格式(如数据对象).
例如,在上面描述的/ browse/all场景中:
这是该应用程序的真正主力.除了在模型和视图中来回传递消息之外,Controller还负责授权等事务和应用程序/"业务"逻辑编辑:每个答案,业务逻辑属于模型.
在正在进行的示例中,Controller将负责:
例如
<html>
<head>
<title>
<?php $question->getTitle() ?>
</title>
</head>
<body>
<h1> <?php $question->getQuestionText(); ?> </h1>
<h2> Answers: </h2>
<div class="answerList">
<?php formatAnswerList($question->getAnswers()); ?>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
formatAnswerList()
上面的方法将从Controller中获取一系列答案,并循环访问它们,同时调用类似于include $markupPath . "/formatAnswer.inc"
只是一个答案容器的小模板.我认为这个描述对控制器的重视程度过高,而对模型的重视程度不够。理想情况下,模型是业务逻辑所在的位置。控制器实际上只是站点用户的一个界面,将控制路由到需要去的地方。看一下之前关于该主题的讨论:
理解 MVC:模型上的“Fat”和控制器上的“Skinny”是什么概念?