MVC模式vs三层 - 逻辑属于哪里?

时间:2014-02-17 12:47:12

标签: java php asp.net-mvc model-view-controller three-tier

我试图在我的网站编码中引入一些好的做法,所以我开始研究MVC,因为它是网站设计的流行语:-)我对MVC模式感到困惑。我习惯于在Three-tier pattern中思考,你有三层:

  • 介绍
  • 逻辑
  • 数据

有两件事让我对MVC感到困惑:

  1. “模型”组件通常表示为上面的数据层(数据库抽象)。但“高级”逻辑属于哪里呢?比如决定你将如何处理数据以及如何处理,检查权限等。有时我在控制器中看到了一些这样的内容,但是我确定哪个属于哪个地方真的很混乱。

  2. MVC模式is presented作为3个组件的圆圈,它们彼此发送消息,如M - > V,V - > C,C - > M,反之亦然。我完全理解三层设计,其中一层称自己下面的层,但不是相反!编程语言中的函数可以调用其他函数(可以称之为“发送消息”) - 但它是一个面向对象的树形图。但是下层怎么可以,或者,被叫函数如何“发送消息”或“通知”调用函数?

  3. 也许我对MVC模式太过关注,并且很乐意继续我的三层设计?无论如何,我想了解MVC模式,至少看看它是否值得为我使用。

1 个答案:

答案 0 :(得分:0)

该模型是另一种表达领域知识的方式,您的控制器应该决定要显示,更新,创建的模型,并且您的视图应该只显示控制器决定呈现的数据。为了解决您的第二个问题,模型通常通过控制器传递到视图,以显示要显示的数据。

有关详细信息,请向下滚动此page

的“模型视图控制器”部分