单例的模板类,任何类都可以通过继承的方式成为单例(单例模式的一种简单写法)
这段代码表明SysParam类继承自SingletionProvider。这种做法通常用于实现单例模式。SingletionProvider是一个提供单例的模板类。
SingletionProvider类负责创建和管理单个实例。这种做法可以确保在应用程序中只有一个SysParam实例,并提供全局访问点。
以下是一个简单的单例模板类示例:
public class SingletionProvider<T> where T : class, new()
{
private static T _instance;
private static readonly object _lockObject = new object();
public static T Instance
{
get
{
if (_instance == null)
{
lock (_lockObject)
{
if (_instance == null)
{
_instance = new T();
}
}
}
return _instance;
}
}
}
使用这个模板类,任何类都可以通过继承的方式成为单例:
public class SysParam : SingletionProvider<SysParam>
{
// 类成员
public void sayHello()
{
int ihashCode = this.GetHashCode();
string strMsg = $"你好,哈希code={ihashCode},现在时间是{System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff")}";
Console.WriteLine(strMsg);
}
public SysParam()
{
Console.WriteLine("SysParam类的构造函数执行");
}
}
现在SysParam就是一个单例类,你可以通过SysParam.Instance来访问它的唯一实例。
请注意,这个示例中的单例实现没有考虑序列化和反射攻击的问题,在实际应用中可能需要额外的防护措施。