静态和实例

思考

在组织数据,对象的时候,我们经常需要考虑,是静态还是实例,这是一个令人纠结的问题

特点

静态数据的特点是,这个类加载的时候,这个数据就会存在了,通常是一些全局的数据

而实例的数据,则是伴随着构造函数生成,在实例对象无法访问时候,生命周期随着消失

使用

  • 【多实例】通常View对象使用实例对象,或者说存在多实例的情况

  • 【状态】需要经常从初始状态开始变化的对象,如界面拼好的时候有一个开场动画,如果采用单例形式,每次需要播放一次开场动画,都需要手动归位一遍,通常会经常有状态改变的,建议new

  • 【单例】单例其实可以认为是一种特殊的静态

  • 【单例or静态】静态通常是一些静态方法的工具类,适合方法比较独立,属性比较少的类,单例可以用在一些管理类,因为会有一些状态缓存,需要频繁的使用this

  • 【静态的this】ts静态的this会指向当前类,个人认为这个是比较有歧义的,因为一些强类型的编程语言(如C++),是不允许在静态方法上面使用this的,使用this的时候一定明确是实例对象(原因应该是js的类也是对象),解决上通常我们会在一些管理类中用到,可以通过保存一个实例来使用这个类

  • 【getInstance的优缺点】使用单例可以快速访问,但是会有一些缺点,会有很长的访问链(我们可以简化成为 static get ins(): xxx)简化它,同时生命周期无法伴随一些归属模块而消失

  • 【obj和静态类】其实静态类就是起到一个obj的作用,但是可以额外的可以声明数据类型,相当于多了一个类型接口声明的功能,通常使用静态类即可

  • 【静态的优缺点】静态方便快速访问,会常驻内存,一些基础数据的放全局还好,如果需要创建的对象比较多,我们就需要考虑这个对象是否按需创建了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。