回答
单例是一个类,它只允许创建自己的一个实例。
C#中一个单例的例子。
public class Singleton
{
private static Singleton _default;
public static Singleton Default
{
get
{
if (_default == null)
_default = new Singleton();
return _default;
}
}
private Singleton()
{ }
public void SomeMethod()
{
// Do something...
}
}
那么你会访问它想:
Singleton.Default.SomeMethod();
经常使用的线程安全单例模板:http://ilyatereschuk.blogspot.com/2013/12/c-simple-singleton-blank-for-everyday.html – 2013-12-24 06:54:40
单身模式是一种只允许创建自己的一个实例的类。如果有人试图创建另一个实例,他们只会得到第一个实例的引用。
由于人们倾向于将其视为上帝对象,他们只是倾倒各种各样的东西,另外还因为它可能使单元测试变得复杂,所以受到很大的嘲笑。但它有它的位置,如果你知道你在做什么,就像goto
和函数的多个返回点:-)
public class SingleTonSample
{
private static SingleTonSample instance;
public static SingleTonSample Instance
{
get
{
return instance?? new SingleTonSample();
}
}
private SingleTonSample()
{
/// todo
}
public void Foo()
{
///todo
}
}
public class UseSingleton
{
public void Test()
{
SingleTonSample sample = SingleTonSample.Instance;
sample.Foo();
}
}
我非常确定这一点能够正确地工作,您的获取需求将:返回实例?? (instance = new SingleTonSample());否则当您调用静态方法Instance时,实例将始终为空,并且您将始终返回SingleTonSample的新实例,该实例恰好不是单实例实现。 – eesh 2011-08-30 17:33:42
@eesh。我写了'return instance ??新的SingleTonSample()'不返回'返回新的SingleTonSample()',尝试它,然后说我确定。 – 2011-09-03 04:40:57
@eesh,其实''实例??新的SingleTonSample()'当实例为null时创建一个实例。 – 2011-09-03 05:51:25
- 1. NDB Singleton模式
- 2. Singleton模式
- 3. Singleton设计模式
- 4. Singleton模式与ini4j
- 5. Singleton懒加载模式
- 6. Singleton模式衍生类
- 7. MVC源代码Singleton模式
- 8. 了解操作Singleton模式
- 9. Singleton模式+ __construct在PHP4
- 10. 的Javascript:最好Singleton模式
- 11. 的Java Singleton设计模式
- 12. Singleton设计模式vs Spring中的Singleton bean容器
- 13. 有关Singleton设计模式和C#
- 14. Singleton模式应该用于Android MediaPlayer
- 15. PHP Singleton模式与abstract class和interface
- 16. 通用Singleton外观设计模式
- 17. 多个AJAX请求(Singleton模式)
- 18. Disadvanage给定Singleton缓存模式
- 19. MongoDB的连接器Singleton模式
- 20. Singleton模式与装饰器相结合
- 21. kotlin的lateinit,lazy和singleton模式
- 22. C#类库 - Singleton设计模式
- 23. Singleton设计模式示例请
- 24. Singleton设计模式和防止克隆
- 25. 了解Python中的Borg Singleton模式
- 26. 实现Singleton设计模式[请建议]
- 27. CodeIgniter - 不允许使用Singleton模式?
- 28. “值不能为空”在Singleton模式
- 29. 我过度使用Singleton模式吗?
- 30. WeakMap模式Singleton没有内存泄漏
有解释:“为什么单是邪恶的”,如果没有正确地应用了许多文章,也许你应该阅读然后再决定在您的项目中使用它。 – 2010-11-01 08:15:26