这就是我编写单例类的方式。
public class MyClass
{
/// <summary>
/// Singleton
/// </summary>
private static MyClass instance;
/// <summary>
/// Singleton access.
/// </summary>
public static MyClass Instance
{
get
{
if (_instance == null)
{
_instance = new MyClass();
}
return _instance;
}
}
private MyClass() { .... }
}
如何创建可重用的单例模式?
单例模式存在以下挑战。
- 构造函数是
private
orprotected
。 - 基类不能实例化继承的类。所以你可以重用一个通用的摘要
MyAbstractSingletonClass
。 - 它必须具有本地只读属性才能获取实例。
问题
我在许多类上使用这种模式并且总是必须编写相同的代码。当我需要一个单例时,如何编写可以重用的东西?