传说中有3种单例方式
- Singleton
- MonoSingleton
- ScriptableObjectSinglton
而前两种非常常见,版本各异
但现在从网上搜索到,都是各种危的版本,所以重新分享一下自用的代码
特色:
- 其实最好是.Inst,而不是.Instance(你不觉得很多代码这么长,不合适吗)
- 提供抽象的Dispose方法,理论上能提醒程序员注意,但既然都用单例模式了,还担心释放么模式
- 名字非一般 Singleton,而是 SpecSingleton
using System;
using UnityEngine;
//为了和普通single区分,所以名字改了。。。。
//这个类的.Init()个人也不是很喜欢用,有点鸡肋
public abstract class SpecSingleton<T> where T : class, new()
{
private static T m_instance;
public static T Inst
{
get
{
if (SpecSingleton<T>.m_instance == null)
{
SpecSingleton<T>.m_instance = Activator.CreateInstance<T>();
if (SpecSingleton<T>.m_instance != null)
{
(SpecSingleton<T>.m_instance as SpecSingleton<