关于模型-视图-控制器体系结构,我有几个问题。我对我在互联网上发现的MVC模式上的所有相互冲突的信息和不同的图表感到有点困惑。

3a。(主动模型-观察者,通知)每次更新时都会通知视图和控制器并从模型中获取新的数据吗?
3b。(被动模型-没有通知)控制器在委托模型更新和将模型更改通知视图之后是否接收更新的模型状态?
如果您能帮助我理解MVC,我将不胜感激。
发布于 2021-11-24 12:54:45
约束通常由您使用的实现布局。考虑到网络,例如,Symfony对MVC还有其他的想法,而不是ASP.NET。
在web上下文中,没有人“通知”任何人,它都是无状态的,基于HTTP请求和响应。控制器可以接收作为POST主体的模型,也可以从GET参数绑定模型,或者基于ID查找实体。
通常,HTTP请求会触发控制器来执行方法,该方法以类似于return View($model)的内容结尾。然后,这个View()方法将模型呈现给一个模板,并将生成的HTML返回给浏览器。我不会称之为通知或更新模型。
当“视图”(在用户浏览器中呈现为HTML )包含表单时,它可以将用户修改的模型发回给控制器。这算得上是操纵模型的视图吗?浏览器中不存在该模型。只有一张表格。控制器根据请求数据和可能的数据库数据重新构造模型。该模型是被动的,只是一个数据传输对象,其属性包含数据。
在桌面应用程序或其他有状态应用程序("clientside MVC")中,事情确实会通过观察者、侦听器和诸如此类的方式互相通知对方。有一个模型的“实例”,它存在于客户端应用程序中。这可以被认为是一个活跃的模型。
https://stackoverflow.com/questions/70096397
复制相似问题