马鞍山什么房产网站做的好,开发游戏用什么软件,fixed wordpress主题,开网店详细步骤流程目录 基本概念
饿汉模式(推荐)
懒汉模式#xff1a; 基本概念
单例模式#xff1a;类只有一个实例#xff0c;一般使用static来实现单例模式#xff1b; 比如#xff1a;有一个Test类,实现了单例#xff0c;假设这个唯一的实例名为SingTonle,实例在类内被实现并被stat…目录 基本概念
饿汉模式(推荐)
懒汉模式 基本概念
单例模式类只有一个实例一般使用static来实现单例模式 比如有一个Test类,实现了单例假设这个唯一的实例名为SingTonle,实例在类内被实现并被static修饰如此就可以直接用Test.SingTonle来访问这个实例 饿汉模式(推荐)
有很多种方式可以实现单例最简单有效的是饿汉模式 优点
简洁高效并且线程安全
缺点
不管程序需不需要用这个单例在类被加载的时候都会创建这个实例造成内存占用和浪费
就是未实现懒加载但是影响不会很大 注意:
上面这个程序不要使用默认的访问器会报错报错没有获取到实例化对象
因为自动属性只能获取简单数据类型的字段例如:int ,float,bool等使用自己实现的类无法自动获得 懒汉模式
这个是最简单的懒汉模式 但是非线程安全两个线程同时执行,有可能两个线程同时判断singLetonnull,而导致各自创建一个实例
然后就有线程安全的单例模式这里复制一份经典的线程安全的代码涉及到线程和锁的相关知识
public sealed class Singleton
{private static volatile Singleton _instance;private static readonly object _lockObject new Object();public static Singleton Instance{get{if (_instance null){lock (_lockObject){if (_instance null){_instance new Singleton();}}}return _instance;}}
} 总结 拿游戏举例 饿汉模式 在进入游戏前将游戏资源实例化并且加载好会造成进入游戏慢的现象。 懒汉模式 在游戏游玩的某个时刻需要用到某个游戏资源时再创建这个游戏资源会造成掉帧或者游戏卡顿的现象 一般在使用时用饿汉模式就足够了当然按需选择 参考博客
Unity单例模式最佳实践附代码
[C#.NET 拾遗补漏]06单例模式最佳实践
C# 单例模式详解