C#中实现Singleton模式(静态初始化策略)
来源:互联网 发布:kindle导入电子书 mac 编辑:程序博客网 时间:2024/05/16 11:28
静态初始化策略
- public sealed class Singleton
- {
- private Singleton(){}
- private static readonly Singleton instance = new Singleton();
- public static Singleton Instance()
- {
- get
- {
- return instance;
- }
- }
- }
在此策略中,将在第一次引用类的任何成员时创建实例。公共语言运行库负责处理变量初始化。该类标记为 sealed 以阻止发生派生,而派生可能会增加实例。有关将类标记为 sealed 的利与弊的讨论,请参阅 [Sells03]。此外,变量标记为 readonly,这意味着只能在静态初始化期间(此处显示的示例)或在类构造函数中分配变量。
该实现与前面的示例类似,不同之处在于它依赖公共语言运行库来初始化变量。它仍然可以用来解决 Singleton 模式试图解决的两个基本问题:全局访问和实例化控制。公共静态属性为访问实例提供了一个全局访问点。此外,由于构造函数是私有的,因此不能在类本身以外实例化 Singleton 类;因此,变量引用的是可以在系统中存在的唯一的实例。
由于 Singleton 实例被私有静态成员变量引用,因此在类首次被对 Instance 属性的调用所引用之前,不会发生实例化。因此,与 Design Patterns 形式的 Singleton 一样,该解决方案实现了懒实例化属性的一种形式(LazySingleton)。
这种方法唯一的潜在缺点是,您对实例化机制的控制权较少。在 Design Patterns 形式中,您能够在实例化之前使用非默认的构造函数或执行其他任务。由于在此解决方案中由 .NET Framework 负责执行初始化,因此您没有这些选项。在大多数情况下,静态初始化是在 .NET 中实现 Singleton 的首选方法。
- C#中实现Singleton模式(静态初始化策略)
- Singleton - 用“静态初始化”在 .NET 中实现 Singleton & 多线程 Singleton
- C#实现Singleton模式
- java中singleton模式与延迟初始化实现方式总结
- C#实现Singleton设计模式
- C#中MDI子窗体的Singleton模式实现
- 在 C# 中实现 Singleton
- 在 C# 中实现 Singleton
- 在 C# 中实现 Singleton
- 在 C# 中实现 Singleton
- 在 C# 中实现 Singleton
- 在 C# 中实现 Singleton
- 在 C# 中实现 Singleton
- 在 C# 中实现 Singleton
- 在 C# 中实现 Singleton
- 在 C# 中实现 Singleton
- 在 C# 中实现 Singleton
- Java中实现Singleton模式
- 栓牛的石头
- 看了让人心疼的签名
- 查找单词出现次数[C实现]
- C#下的WebClient保存session和cookie的方法
- 解决Chrome中Flash无法显示的问题
- C#中实现Singleton模式(静态初始化策略)
- 2008 November 10th Monday (十一月 十日 月曜日)
- custom control的使用方法(Creating and Using custom controls in VC++)
- 2008年11月28号_五_晴_学无止境
- 2008 November 11th Tuesday (十一月 十一日 火曜日)
- Big Endian 与 Little Endian
- 2008 November 12th Wednesday (十一月 十二日 水曜日)
- Oracle 中设置位的值函数SETBIT(原创)
- 学习java的心得