美文网首页
函数静态变量---你真正get到它的意义了吗???

函数静态变量---你真正get到它的意义了吗???

作者: 水水兔 | 来源:发表于2019-11-22 15:19 被阅读0次

    业务场景

    场景:今天开发一个业务方法,每次上传图片时,都会去调用此方法,在业务方法里需要判断,上次是否有从服务器获取过业务编码列表,如果有,则直接从列表中拿出相关的业务编码,如果没,则从服务器获取,获取后并保存下来,以免下次用时,重复获取。
    需求:
    1、此业务编码列表生命周期为程序的生命周期,即app生命结束时,此列表会清理掉,所以不能持久化本地。
    2、整个项目工程没有一个数据中心来存放这种全局的缓存数据(是不是觉得不可思议?但事实就是这样)。
    3、有些人会想,你把这个列表做为当前界面的属性存储起来不行???不行,因为还有另一个功能模块也需要调用此方法,也要用到此列表。

    一开始完全没想到函数静态变量上,一直在工程里找有没有这样一个数据中心(单例,程序生命周期中只初始化一次),但工程的数据中心存储的都是些持久化的数据,这个业务目前只在两个子功能用到,如果不用到这两子功能,有可能这数据永远不会存在和用到,所以放在全局的数据中心似乎也不太合适,要是以后都这么添加,数据中心的数据会越来越乱,只能另谋它法。

    函数静态变量

    以前只是知道,函数内部的静态变量,在第一次函数时才被初始化,但是没去了解它的生命周期。
    静态局部变量在函数内定义,生存期为整个源程序,但作用域与自动变量相同,只能在定义该变量的函数内使用。退出该函数后, 尽管该变量还继续存在,但不能使用它。
    函数静态变量完全能满足以上需求,在方法内部定义一个静态列表变量变行了。

    今天之后,突然发现之前对函数静态变量用的这么肤浅,不要再把业务需求量不大的数据放数据中心了,这样用试试

    相关文章

      网友评论

          本文标题:函数静态变量---你真正get到它的意义了吗???

          本文链接:https://www.haomeiwen.com/subject/hcqqwctx.html