任何人都可以帮助我理解使用 System.Lazy与Singleton Design Pattern 的好处。
答案 0 :(得分:15)
C#Singletons的最佳来源(也涵盖Lazy<>
)属于Jon Skeet:http://csharpindepth.com/Articles/General/Singleton.aspx
假设您想要一个类:
如果上述大多数条件都成立,则需要确保该类为Singleton,并且该惰性初始化该唯一实例(直到需要时才初始化)如果您使用Lazy<>
定位C#4.0或更高版本使您的设计更简单,更易读,更容易记忆。
答案 1 :(得分:1)
文档说
使用Lazy(Of T)的实例来推迟创建大型或 资源密集型对象或资源密集型的执行 任务,特别是当这种创建或执行可能不会发生时 在该计划的整个生命周期中。
因此,只有在需要时才能创建单例实例。
懒惰实例化通常很有用,因此在应用程序初始化时不会支付所有创建成本 - 可能会提供更好的用户体验。