我常用的两个单例模式写法 (继承Mono和不继承Mono的)

不继承Mono

不继承Mono代表不用挂载到场景物体上面,因此直接饿汉式 加 合并空运算符判空创建实例

=>(lambda表达式)的意思是get,就是将instance赋给Instance属性

cs 复制代码
    //单例
    private  static JsonDataManager instance =new JsonDataManager();
    public static JsonDataManager Instance=>instance??( new JsonDataManager());//a??b a为空则返回b,否则返回a

继承Mono

继承Mono代表需要挂载到场景中,因此被挂载的物品就相当于该脚本的对象,所以要到awake里面为instance赋值

其实如下写法按理来讲是可能出现问题的,但是我目前没有遇到过,因为我严格将该脚本挂载到场景对象之中

cs 复制代码
 private  static JsonDataManager instance = new JsonDataManager();
 public static JsonDataManager Instance=>instance;

    private void Awake() {
        if(instance == null)
            instance = this;
        else
            Destroy(gameObject);
    }

规范写法如下:
Unity :单例模式 + MonoBehaviour 是什么体验?-CSDN博客

相关推荐
啃火龙果的兔子4 分钟前
Kotlin 修改安装到桌面后的应用图标
开发语言·kotlin·harmonyos
来来走走4 分钟前
Android开发(Kotlin) ViewModel基本用法
android·开发语言·kotlin
小兔崽子去哪了8 分钟前
Docker部署ZLMediaKit流媒体服务器并自定义配置指南
java·后端·容器
程序猿小蒜9 分钟前
基于springboot的人口老龄化社区服务与管理平台
java·前端·spring boot·后端·spring
Caarlossss14 分钟前
jdbc学习
java·开发语言·学习·http·tomcat·maven
lsx20240622 分钟前
Bootstrap 标签详解
开发语言
Coder-coco28 分钟前
个人健康系统|健康管理|基于java+Android+微信小程序的个人健康系统设计与实现(源码+数据库+文档)
android·java·vue.js·spring boot·微信小程序·论文·个人健康系统
断剑zou天涯36 分钟前
【算法笔记】从暴力递归到动态规划(二)
java·算法·动态规划
FL162386312939 分钟前
Qt自定义控件之仪表盘和水波纹圆形进度条的完整实现
开发语言·qt
Boop_wu1 小时前
[Java EE] 多线程编程初阶
java·jvm·算法