设计模式学习之单件模式的静态初始化

【这是以前写在博客园的,那里荒废了就转过来】 静态初始化: C#与公共语言运行库提供了一种“静态初始化”方法,这种方法不需要开发人员显式地编写线程安全代码,即可解决多线程环境下他是不安全的问题。先看代码: [csharp] public sealed class Singleton //sealed阻止发生派生,而派生可能会增加实例 { private static readonly Singleton instance=new Singleton();//readonly意味着只能在静态初始化期间或类构造函数中分配变量 private Singleton(){} public static Singleton GetInstance() { return instance; } } [/csharp] 所谓的静态初始化方式,就是在类被加载时实例化的一种方式。这样做的缺点是要提前占用系统资源。优点是更简单地解决了线程安全问题。但是他同样解决了单件模式试图解决的两个基本问题:全局访问和实例化控制。 后来,发现有人对延迟初始化说的也是含糊不清,就不了解了,有了以上的就可以了。