c# 单例模式基类(基于反射初始化子类)
一、基类源码
SingleBase.cs
/// <summary> /// 单例模式 /// </summary> /// <typeparam name="T"></typeparam> public class SingleBase<T> { static T instance = default(T); public static T GetInstance() { if (instance == null) { instance = (T)System.Reflection.Assembly.GetAssembly(typeof(T)).CreateInstance(typeof(T).ToString()); } return instance; } protected SingleBase() { } }
二、该类叙述
该基类通过GetInstance()方法实例化T类型子类,只能实例化一次;但是,不能够强制子类必须使用该方法实例化,子类仍然可以通过构造方法实例化新对象;