gpt4 book ai didi

cocoa - 多个 View 和 Controller 的 MVC 类组织是什么样的?

转载 作者:行者123 更新时间:2023-12-03 16:39:35 25 4
gpt4 key购买 nike

MVC 本身的想法对我来说似乎很清楚,但我很难理解这个概念如何“扩展到”多个 View 和 Controller 。

Cocoa 似乎采用了 Controller 作为模型和 View 之间的“交换机”的方法。在多个 View 的情况下,应用程序将如何组织和运行?如果每个 View 都有一个关联的 Controller ,那么主应用程序是否必须跟踪它生成的所有 Controller ,或者每个 Controller 都会有它实例化的“嵌套” Controller ,例如应用程序将创建一个窗口,该窗口将创建一个工具栏等?

如果整个应用程序需要使用相同的模型,或者您会将模型分解为更小的模型,该怎么办?

看来我真正要问的是如何将多窗口/ View 应用程序拆分为其逻辑 block ,同时保留模块化 MVC 结构。我尝试查看 WordPress iPhone 应用程序以及 Adium 中的代码,但两者似乎都有一个相对较大的代码库,我迷失了方向。

最佳答案

通常 Controller 是分层实现的。例如,在标准的 Cocoa Document 架构中,您有一个 NSDocumentController 来管理 NSDocument 的多个实例。每个 NSDocument 实例管理一个或多个 NSWindowController 实例,每个 NSWindowController 实例可以管理一个或多个 NSViewController< 实例.

随着层次结构的向下移动,控制者的职责变得更加具体和细粒度。在访问模型方面,Cocoa 有多种模式,例如委托(delegate)和数据源模式,您可以使用它们来允许 View 进行绘制,而 View 不需要了解有关模型本身的任何信息。

通常,应用程序会有一个统一的模型,除非有不同的模型有意义(例如,如果您需要应用程序编辑不同类型的文档)。

关于cocoa - 多个 View 和 Controller 的 MVC 类组织是什么样的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2687082/

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