gpt4 book ai didi

MVC 架构中的 iOS Singleton 类

转载 作者:行者123 更新时间:2023-11-28 21:27:51 24 4
gpt4 key购买 nike

大多数 iOS 应用程序都基于 MVC 设计模式,我们多年来一直在我们的应用程序中使用单例类。我知道 Singleton 本身是一种设计模式,许多人认为它是反模式以及所有关于单例的好坏东西。

但是,如果您将 MVC 视为您应用程序开发的整体架构,我想了解单例在其中的分类位置。它是模型、 View 还是 Controller ?如果是,为什么?如果它不属于这三个中的任何一个,那么它是什么?

这似乎是一个愚蠢的问题,但它一直困扰着我,因为我在一家知名公司的面试中被问到这个问题。

最佳答案

MVC 是一种架构模式,而 Singleton 是一种设计模式。这两件事没有关系,因此 Singleton 在 MVC 中不是“任何东西”。

撇开关于使用单例的任何政治讨论不谈,理论上您可以决定将任何模型、 View 或 Controller 类设为单例。

正如 gnasher 指出的那样,在 iOS SDK 中,ViewController 是由运行时创建和销毁的,这意味着无论理论上如何,在这种情况下将它们作为单例都是不合逻辑的。

更有可能的情况是您希望您的模型可用于多个 View 。您可能决定将该模型设为单例,可以通过依赖注入(inject)框架或构造函数注入(inject)访问它。在这种情况下,您的类既是模型类,又是单例类。它们并不相互排斥。

我想知道这是否是您的面试官的意思 - 您最有可能希望在 iOS 应用程序中的什么地方使用 Singleton?在这种情况下,正确答案将在模型中。

关于MVC 架构中的 iOS Singleton 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37432973/

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