【发布时间】:2013-01-10 12:34:24
【问题描述】:
我有一个关于 MVC 的非常普遍的问题。我有一个应用程序,它使用标签栏控制器来显示来自网络服务的不同类型的数据。
我有一个“模型”类,它完成所有的脏活,比如获取数据并修改它以进行演示,但我在每个 MVC 中都实例化了该类。这就是问题所在。例如,应用程序的两个选项卡是销售和评论。当应用程序启动时,我希望它获取并显示销售,如果有新的 cmets,还可以获取 Comments 并在 cmets 选项卡上放置一个徽章。
该获取过程涉及从 Web 服务中提取数据、将其存储到核心数据、从缓存中提取、比较等。当用户点击评论时,它会变得很难看,但他们仍在“销售”选项卡中获取(只是为那个徽章)。当 Comments 出现时,Sales MVC 已经死了,我无法告诉它任何事情来防止它搞砸。
我的问题是,如何使“大脑”类独立于 MVC?这意味着我不想为每个 MVC 拥有一个大脑(这没有任何意义),但对所有 MVC 只拥有一个大脑并使用委托来推送数据和徽章之类的东西?我曾考虑将 UITabBarController 子类化并将大脑类放在那里,但我不确定这样做是否是一个好习惯。
有什么想法吗?
【问题讨论】:
-
“每个 MVC”是什么意思????
-
每个 MVC = 每个 ViewController...
-
它可以很容易地成为一个 MVC。就我而言,它不是 MVC,我之所以这么称呼它是因为人们理解它的含义。
-
@NikolayDyankov 一个对象不能包含(或者不应该包含)整个模型-视图-控制器模式。
-
@NikolayDyankov:不,这不是大多数有经验的开发人员谈论这些东西的方式。您的术语令人困惑。没有人说“MVC”。我并不是要批评这一点——只是为了避免将来出现混乱。
标签: ios objective-c model-view-controller