单例c#的多个实例

Siw*_*war 1 c# singleton

是否有类似Singleton的模式的实现,允许创建多个实例?

我的班级定义是:

public class Logger
{
    private Logger(string logPath)
    {
        this.logPath = logPath;
    }


    /// <summary>
    /// Creates singleton 
    /// </summary>
    /// <param name="logPath"></param>
    /// <returns></returns>
    public static Logger GetInstance(string logPath)
    {
        lock (instanceLock)
        {
            if (logger == null)
            {
                logger = new Logger(logPath);
            }
        }
        return logger;
    }

    public static Logger Instance()
    {
        return logger;
    }

    /// <summary>
    /// Destructor
    /// </summary>
    ~Logger()
    {
        try
        {
            this.Close();
        }
        catch (Exception)
        {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 6

是否实现了类似Singleton的模式,允许创建多个实例.

如果你想要多个实例,只需允许直接构造类,而不是使它成为单例.在您的情况下,只需将构造函数设置为public,然后删除单例/实例逻辑.

话虽如此,还有Multiton模式,它允许通过单个接口对多个实例进行键控访问.