iPhone 开发环境中的 MVC
Posted
技术标签:
【中文标题】iPhone 开发环境中的 MVC【英文标题】:MVC in iPhone development context 【发布时间】:2011-12-12 05:31:25 【问题描述】:到目前为止,我已经阅读了一些关于 iPhone 应用程序开发的 MVC 设计模式的资源。但是,在 iPhone 开发环境中,我有一个与 MVC 模型部分相关的问题。
首先,我想说一下我对 MVC 的看法,
模型: 与我们拥有的关于应用程序对象的数据相关。示例:火车模拟器的应用比,每辆模拟火车都有自己的属性,并将保存在火车模型中。
Controller : 是控制 UI 更新的东西。它保留对训练模型的引用并检查模型中的任何更改,如果有则更改该特定列车的视图。它会不断检查任何 UI 输入,以便更改模型内部的数据。
View :这很明显 View 是关于 UIView 的,我们在屏幕上看到的。
现在,问题是……
模型是否必须具有持久性才能被视为模型?或者我可以 有一个没有任何持久性的变量的类。会是 也被视为模型,或者模型必须存储在类似的地方 在 CoreData 或 .Txt 文件等中......
感谢您的任何意见!
【问题讨论】:
【参考方案1】:模型是否必须具有持久性才能被视为模型?
只要您的控制器能够支持它,它可能会发生变化或变化。
模型必须存储在某个地方,例如 CoreData 或 .Txt 文件中
一点也不。
如果适用,您可以使用任何模型。模型只是您的实际逻辑/数据库/网络访问/blablabla 的另一个抽象......
【讨论】:
【参考方案2】:不,MVC 背后的想法实际上与数据库无关,尽管这很常见。该模型应该简单地捕获所有业务逻辑。如果你正在构建一个计算器,视图是显示器和按钮,模型是知道如何加减的代码部分,控制器是连接两者的部分。不涉及持久性。
【讨论】:
【参考方案3】:不,模型不必是持久的。
理论上,为了简单起见,开始您的项目的一个好方法是使用非持久模型。然后,当您将模型更改为持久化时,您不必对视图或控制器进行任何更改,因为您将设计接口以不了解模型的细节。
实际上,如果您打算在模型持久化时将 Core Data 用于模型,那么这在 iPhone 上并不是一个好主意。 Core Data 要求你以不同的方式设计你的类。即使您在更改模型时不必对视图和控制器代码进行很多更改,您也必须对模型进行大量代码更改。如果您知道您将使用 Core Data,最好从它开始。
【讨论】:
以上是关于iPhone 开发环境中的 MVC的主要内容,如果未能解决你的问题,请参考以下文章