gpt4 book ai didi

model-view-controller - 谁负责下一个View?

转载 作者:行者123 更新时间:2023-12-04 08:24:44 26 4
gpt4 key购买 nike

在典型的 MVC 架构中,决定接下来显示哪个 View 的逻辑在哪里?

假设是某种具有多个 View (窗口)的应用程序,这些 View (窗口)可能在不同时间可见,也可能不可见,具体取决于用户操作。例如,有时应用程序可能需要用户填写包含其他详细信息的表格,有时则不需要。要求特定 View 变得可见是 Controller 的责任吗?

我是不是想错了?也许 Controller 决定了哪个 Controller 应该接管控制权,而 View 只是根据哪个 Controller 处于事件状态而更新?

我很困惑。

最佳答案

Controller 是 MVC 模式中的老大。它负责委托(delegate),同时自己做最少的工作;)。

一个请求进来了,老板看着它想“嗯……这里涉及很多工作。我需要从我的数据库中获取一些数据。幸运的是我有下属!嘿模型,过来这里.我需要你离开并从 DAL 获取所有信息。”

将模型视为开发人员。做所有真正的艰苦工作,亲自动手,如果没有模型,整个系统就会崩溃。它启动并执行所有业务和域逻辑。然后跑回老板那里,交上他所有的心血。 “给你政府”。

然后老板需要把数据返回给用户。再次 - 他的工作量太大了。所以他找了一个愚蠢的初级开发人员来做这件事。 (不是所有的后辈都是傻子,但它适用于这个例子!)。见地一无所知。它不关心数据是如何产生的,只关心它就在那里并且可以工作。老板可能会对数据做一些小的改动,因为我们不希望 View 承担比它需要的更多的责任,然后 View 关闭并显示数据。根据工作量,老板可能会为这份工作招聘多个 View 。

基本上, Controller 控制 MVC 模式中的所有流程。它决定调用哪些模型,渲染哪些 View ,以及将模型中的哪些数据传递给 View (ViewModels)。

您可以从一个 Controller 调用其他 Controller 。例如,如果您的主页上有一个搜索框,当用户点击搜索时,它可以调用搜索 Controller 上的索引函数。在我上面的比喻中,这类似于一个部门将工作传递给另一个部门。然后整个过程重新开始,老板根据当前的要求招聘他需要的员工。

关于model-view-controller - 谁负责下一个View?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3700568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com