【发布时间】:2013-01-12 08:15:53
【问题描述】:
在我采用 MVC 架构的应用中,我有两个不同的控制器,它们使用基本相同的模型类。
由于init 上的此模型类使用NSKeyedUnarchiver 取消归档整个对象图,因此在传递给新控制器时初始化该类的新实例可能会在资源方面有点昂贵。
所以我想知道将指向第一个控制器的已初始化模型类的指针传递给第二个控制器而不是从头开始创建新实例是否是“好习惯”。
你们觉得呢?
【问题讨论】:
-
可以肯定 MVVC 的核心概念之一是每个视图都只有一个模型...
-
嗯,也许我不清楚,或者我没有明白你的意思,如果是这样,我很抱歉,但我不是以英语为母语的人,最重要的是我是 MVC 新手。无论如何,我不是在谈论在一个控制器中拥有两个模型,而是在谈论两个控制器共享同一个模型。
-
好的,我建议更改您的标题... ViewController 是 MVVC,MVC 的衍生产品。一般来说,您希望每个视图都有一个模型类(默认情况下,每个控制器)。这允许您将特定于控制器的业务验证逻辑放入模型中。如果您对多个控制器使用同一型号,则您的控制器可能是多余的。
-
@JeremyHolovacs 在 iOS 开发的上下文中,控制器(通常)被称为视图控制器,但范式仍然通常称为 MVC。此外,没有必要将模型类与视图联系起来——重点是将数据存储和操作的方式与其显示和输入的方式分离。无需更改标题。
-
@Caleb 很高兴知道!谢谢。