gpt4 book ai didi

ios - MVC - 模型应该是与 Controller 不同的类吗?

转载 作者:行者123 更新时间:2023-11-29 11:08:57 24 4
gpt4 key购买 nike

我正在学习 cocoa(不是 ios),我想在我创建的所有代码中理解和实现 MVC。我已经学习并理解了这个设计的逻辑,我正在尝试在我的应用程序中使用它(来自类(class)和教程等的非常小的应用程序)。

大多数教程仅在 2 个文件中展示了 MVC 示例。 Model 和 appController 一起在一个类/文件(NSObject 的子类)中,然后 View 显然在它自己的文件(NSView)中。但是当我想到 MVC 时,我总是会想到 3 个文件中的 3 个类:

类/文件 1. 模型姓名、人物、年龄、数组等。类/文件 2. appController - 大脑,例如给一个人一个名字和年龄等...类/文件 3. View 在窗口中显示此人。

那么模型是否应该始终与 Controller 位于单独的文件中?

另一个问题是关于通信的——在上面的例子中,Model 和 appController 将如何共享数据? Model 会是 appController 的子类吗(appController 是 NSObject 的子类),这样两者就可以共享 ivars 了??

感谢阅读本文,希望您能消除我的困惑。

最佳答案

关于模型,您是对的,这些可以是抽象数据类型,例如人物、新闻等。您可以说您的业务对象构成了您的模型。 View 是你如何表示你的数据,例如我必须在 tableViewCell 中显示一个新闻项目,我将创建一个包含该新闻的标题、日期和时间的 View 。但是这个 View 不会直接与模型通信来获取数据。在这里你的 Controller ,你称之为大脑,进来了。你的 Controller 知道要显示这个 View 。在这种情况下,您的 Controller 具有模型对象新闻对象。所以它会将模型对象的给定数据提供给 View 以填充 View 。所以你的第二个问题的答案来了,你不需要将模型作为应用程序 Controller 的子类。但是你的 Controller 有你模型的对象。该对象正处于使用的最后阶段。所以关键点是:模型与 Controller 分开,并查看两者。 View 和模型不直接通信。 Controller 作为 View 和模型之间的通信源。模型不是 appcontroller 的子类。您的 Controller 可能必须对对象建模才能使用它。

希望它能澄清您的困惑。

关于ios - MVC - 模型应该是与 Controller 不同的类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12386917/

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