补充:“浅谈对单例模式的认识演变及代码实践”
来源:互联网 发布:金融资产管理与大数据 编辑:程序博客网 时间:2024/06/14 09:27
原文:浅谈对单例模式的认识演变及代码实践,引自:http://blog.csdn.net/icyhy/article/details/6549568,基于过去的一篇文章,补充加入之后的新认识:
.net framework 4.0新增了Lazy<>,用于实现单例如下:
/// <summary> /// 需要实现单例的类 /// </summary> public class SingletonDemo { private static readonly Lazy<SingletonDemo> _Instance = new Lazy<SingletonDemo>( () => { return new SingletonDemo(); }); private SingletonDemo() { } /// <summary> 获得一个本类型的单件实例. /// </summary> /// <value>The instance.</value> public static SingletonDemo Instance { get { return _Instance.Value; } } }
Ninject库也为单例提供很好的实现方式(推荐):
public class MyModulesInSingletonScope : NinjectModule { public override void Load() { // ## To 方法:绑定到接口的具体实现。 Bind<ISingleton>().To<SingletonDemo>().InSingletonScope(); } } class Program { static void Main(string[] args) { using (IKernel kernel = new StandardKernel(new MyModulesInSingletonScope())) { for (int i = 0; i < 5; i++) { var p = kernel.Get<ISingleton>(); Console.WriteLine(string.Format("{0}", p.TestSingleton())); } } Console.ReadKey(); } } /// <summary> /// 需要实现单例的类 /// </summary> public class SingletonDemo:ISingleton { private int _Count; public int TestSingleton() { _Count += 1; return _Count; } } public interface ISingleton { int TestSingleton(); }
结果:
单例类的建立不用再类中增加一堆重复代码了,但类的构造函数必须是public,是否合理,见仁见智。
- 补充:“浅谈对单例模式的认识演变及代码实践”
- 浅谈对单例模式的认识演变及代码实践
- 浅谈对单例模式的认识演变及代码实践
- 浅谈对MVC模式的认识
- 单例模式补充
- 对于单例模式的补充
- 单例模式的实践
- 浅谈我对设计模式的了解 - 单例设计模式
- 浅谈对信息管理的认识
- 浅谈对OneNAND的认识
- 浅谈对工作流的认识
- 浅谈对HSV的认识
- 浅谈对语言的认识
- 浅谈对nodeJS的认识
- 对block,单例模式的理解及使用
- 浅谈单例模式
- 浅谈单例模式
- 单例模式浅谈
- android布局文件解析成view树浅析
- 走在下班的路上
- 初学jsp常见问题
- java final关键字引起的问题
- 在MFC中利用OpenGl库进行仿真编程
- 补充:“浅谈对单例模式的认识演变及代码实践”
- 3D引擎多线程:资源异步加载
- 2012-2013考研英语词汇
- 黑马---程序员 在外部类中,如何访问内部类中的静态成员呢? outer.inner.function();
- 一种3D引擎的多线程设计方案
- 性能优化的方法和技巧:代码
- 内部类注意事项: 内部类定义在局部时:
- 几种多线程3D引擎架构的比较
- loongson开发者社区