每个人都知道如何为单例设计模式编写代码。例如
public class Singleton
{
// Private static object can access only inside the Emp class.
private static Singleton instance;
// Private empty constructor to restrict end use to deny creating the object.
private Singleton()
{
}
// A public property to access outside of the class to create an object.
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
很明显,当我们多次创建任何类的实例时,会为每个实例分配内存,但在单例设计模式的情况下,单个实例会为所有调用提供服务。
1) 我有点困惑,真的没有意识到原因是什么……什么时候应该选择单例设计模式。只是为了节省一些内存或任何其他好处。
2) 假设任何一个程序都可以有很多类,那么哪些类应该遵循单例设计模式?单例设计模式有什么优势?
3 在现实生活中的应用程序中,什么时候应该按照单例设计模式创建任何类? 谢谢
这里是线程安全的单例
public sealed class MultiThreadSingleton
{
private static volatile MultiThreadSingleton instance;
private static object syncRoot = new Object();
private MultiThreadSingleton()
{
}
public static MultiThreadSingleton Instance
{
get
{
if (instance == null)
{
lock (syncRoot)
{
if (instance == null)
{
instance = new MultiThreadSingleton();
}
}
}
return instance;
}
}
}
最佳答案
确保每次只有一个相同的对象实例。
举个例子,假设有一个公司应用程序,只有一个 CEO。如果你想创建或访问 CEO 对象,你应该每次都返回相同的 CEO 对象。
另外,在登录应用程序后,当前用户每次都必须返回相同的对象。
关于c# - 单例设计模式的优点是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12901734/