我常用的两个单例模式写法 (继承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博客

相关推荐
TechMasterPlus几秒前
java:单例模式
java·开发语言·单例模式
JIngJaneIL12 分钟前
远程在线诊疗|在线诊疗|基于java和小程序的在线诊疗系统小程序设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序·毕设·在线诊疗小程序
will_we12 分钟前
Spring Boot4正式篇:第二篇 多版本API特性
java·后端
风筝在晴天搁浅13 分钟前
代码随想录 70.爬楼梯
java
好好研究15 分钟前
SpringMVC框架 - 文件上传
java·spring·mvc·idea
栗子~~25 分钟前
java-根据word模板灵活生成word文档-demo
java·开发语言·word
秃了也弱了。29 分钟前
testng:Java界功能强大的单元测试框架
java·单元测试·log4j
曾经的三心草34 分钟前
JavaEE初阶-多线程2
android·java·java-ee
Boop_wu1 小时前
[Java EE] 多线程 -- 初阶(5) [线程池和定时器]
java·开发语言
S***H2832 小时前
JavaScript原型链继承
开发语言·javascript·原型模式