栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Singleton VS静态(类)变量

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Singleton VS静态(类)变量

tl; dr

当您存储可变状态时的选项1(类或结构),因为您需要其他实例。

当您要存储静态变量时,可以使用选项2(作用域全局变量),因为它速度更快且使用的内存更少。

具有变量的Singleton类(或结构)

全球状态通常被认为是“坏事”。很难考虑,会引起问题,但有时是不可避免的。

  • 如果您想拥有多个
    SomeManager
    实例,请创建一个类。
  • 单例可以是很好的默认实例,但是在某些情况下,您可能希望具有单独的行为(测试)。
  • 如果
    SomeManager
    存储全局状态,则依赖注入…是一个重要的话题。

静态变量

  • 始终为时使用
    someVariable
  • 不需要额外的存储空间
    static var sharedManager = SomeManager()
    ;您仅使用实际需要的内存。
  • 速度稍快,因为您不需要加载
    sharedManager
    到内存中就可以访问它的member
    someVariable
    。您直接访问
    someVariable

奖金提示:

在选项2中,

SomeManager
即使不执行任何操作,也可以创建。您可以通过
SomeManager
不使用任何情况的枚举来防止这种情况。

enum SomeManager {    static var someVariable: String?}

您仍然可以这样做:

SomeManager.someVariable

但是你做不到

let manager = SomeManger()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/425751.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号