Singleton模式的.NET实现
2010-02-25 07:23
176 查看
在Windows Mobile下使用Native C++开发日志类文章中dpol提问 “在C#下面怎么应用Singleton模式呢?”。下面写一下Singleton模式的.NET实现。
这个实现还是保证三个需求: 1. 有且只有一个对象实例化。 2.多线程的控制。3. 按需实例化。
sealed class 保证Singleton类不能被继承。什么时候中国人这个类变成 sealed 就好,不用老是被代表。
static Logger Instance 保证按需实例化和多线程安全。
private Logger() 保证只有一个对象实例化。
很简单吧。
修改记录:
1.根据回复增加 readonly 到定义中。
public sealed class Logger : IDisposable { //the Singleton Implement // Static members are lazily initialized. // .NET guarantees thread safety for static initialization public static readonly Logger Instance = new Logger(); private Logger() { } public void Dispose() { } }
这个实现还是保证三个需求: 1. 有且只有一个对象实例化。 2.多线程的控制。3. 按需实例化。
sealed class 保证Singleton类不能被继承。什么时候中国人这个类变成 sealed 就好,不用老是被代表。
static Logger Instance 保证按需实例化和多线程安全。
private Logger() 保证只有一个对象实例化。
很简单吧。
修改记录:
1.根据回复增加 readonly 到定义中。
相关文章推荐
- 第6章 服务模式 在 .NET 中实现 Service Interface
- 剑指offer - 实现Singleton模式
- PHP 中实现 Singleton 模式和 Monostate 模式
- C++实现Creational - Singleton模式
- c#单例(Singleton)模式实现
- singleton模式的几种实现方式
- 《剑指offer》面试题2:实现Singleton模式
- .Net 单例模式(Singleton)
- C++完美实现Singleton模式
- Singleton设计模式的C#实现(下)
- .NET中实现正确的资源释放模式
- 单例模式(Singleton)的6种实现
- Object-C 中实现 Singleton (单例) 模式
- 剑指Offer算法题之设计模式的单例模式--面试题2:实现Singleton模式
- 线程安全的Singleton模式的Java实现
- 从C#的Singleton设计模式实现看.NET Framework特性对开发者的重要性
- Singleton模式之Delphi实现
- PHP 实现单件(singleton)模式
- Singleton模式与在Ogre中的实现
- C++完美实现Singleton模式