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

embedded/2024/10/17 17:35:36/

不继承Mono

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

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

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

继承Mono

继承Mono代表需要挂载到场景中,因此被挂载的物品就相当于该脚本的对象,所以要到awake里面为instance赋值
其实如下写法按理来讲是可能出现问题的,但是我目前没有遇到过,因为我严格将该脚本挂载到场景对象之中

 private  static JsonDataManager instance = new JsonDataManager();public static JsonDataManager Instance=>instance;private void Awake() {if(instance == null)instance = this;elseDestroy(gameObject);}

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


http://www.ppmy.cn/embedded/127780.html

相关文章

框架一 Mybatis Spring SpringMVC(东西居多 后边的没怎么处理)

Mybatis 使用简单的XML或注解来配置和映射原生类型、接 口和Java的POJO (Plain Old Java Objects,普通老式Java对象)为数据库中的记录。 ${}和#{}的区别是 ${}替换成变量的值 #{}替换成? Mybatis中,resultType和ResultMap的区别是 如果数据库列名和…

集合框架08:LinkedList源码分析、ArrayList和LinkedList区别

视频链接:13.15 LinkedList源码分析_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1zD4y1Q7Fw?spm_id_from333.788.videopod.episodes&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5&p15 13.16 ArrayList和LinkedList区别_哔哩哔哩_bilibilihttps://…

【中国象棋】unity中国象棋自我对弈

中国象棋 一级目录二级目录三级目录 棋类游戏的难度等级自我对弈代码游戏管理器棋子和格子棋子移动类棋子规则类检测将军类悔棋UI类 一级目录 二级目录 三级目录 棋类游戏的难度等级 1、跳棋、五子棋:一星 2、中国象棋、国际象棋:三星 3、围棋&#…

SpringBoot+MyBatis+MySQL项目基础搭建

一、新建项目 1.1 新建springboot项目 新建项目 选择SpringBoot,填写基本信息,主要是JDK版本和项目构建方式,此处以JDK17和Maven举例。 1.2 引入依赖 选择SpringBoot版本,勾选Lombok,Spring Web,MyBa…

C#删除dataGridView 选中行

关键在于:从最后一行开始删除。 从前往后删只能删除其中一半,我理解是再remove行的时候dataGridView内部行序列发生了变化,包含在选中行中的特定行会被忽略,从后往前删就可避免这个问题,最后一行的行号影响不到前面的…

OceanBase 从架构到实战应用的技术探索

1. 引言 1.1 OceanBase 简介 OceanBase 是蚂蚁集团自主研发的一款分布式关系型数据库,专为应对金融级别的高并发、高可用性需求而设计。它不仅支持强一致性事务处理,还具备高扩展性,能够应对大规模的数据存储和高频率的查询请求。作为一款新…

截图贴图工具 | PixPin v1.9.0 绿色版

PixPin是一款功能强大且使用简单的截图和贴图工具,它旨在帮助用户提高工作效率。PixPin的主要功能包括截图、贴图、标注、文本识别、长截图和截动图。它允许用户自由选择或自动探测窗口来设定截图范围,精准截取所需内容,并将所截取的图像“贴…

Merlion笔记(二):单变量时间预测

1 简单示例 我们首先导入Merlion的TimeSeries类和M4数据集的数据加载器。然后,我们可以将该数据集中的特定时间序列划分为训练集和测试集。 from merlion.utils import TimeSeries from ts_datasets.forecast import M4time_series, metadata M4(subset"Hou…