首页 > 其他 > 详细

设计模式-单例模式

时间:2018-05-21 23:35:07      阅读:280      评论:0      收藏:0      [点我收藏+]
//懒汉式 private static readonly object obj = new object(); private static DbConnection dbConnection; private DbConnection() { } public static DbConnection getDbConnection() { if (dbConnection == null) { lock (obj) { if (dbConnection == null) { dbConnection = new DbConnection(); } } } return dbConnection; } public void openConnection() { Console.WriteLine("开启数据库连接"); } //饿汉式 private static readonly DbConnection dbConnection = new DbConnection(); private DbConnection() { } public static DbConnection getDbConnection() { return dbConnection; } public void openConnection() { Console.WriteLine("开启数据库连接"); } //懒汉式 //DbConnection dbConnection= DbConnection.getDbConnection(); //DbConnection dbConnection2 = DbConnection.getDbConnection(); //dbConnection.openConnection(); //if (dbConnection == dbConnection2) //{ // Console.WriteLine("相同的"); //} //Console.ReadLine(); //饿汉式 DbConnection dbConnection = DbConnection.getDbConnection(); DbConnection dbConnection2 = DbConnection.getDbConnection(); if (dbConnection == dbConnection2) { Console.WriteLine("相同的"); } Console.ReadLine();

总结:保证类只有一个实例,自己完成自己的实例化
懒汉式:在第一次被引用的时候实例化,不提前占资源,但需要双重锁保证线程安全。
饿汉式:被加载时实例化,需要提前占用资源。

与静态方法区别:
1、静态方法里面的对象使用过后会释放,频繁使用释放也耗资源;单例由于有一个实例化,会一直存在。
2、单例可以继承类,实现接口,方法可以被重载。
3、单例比静态方法更灵活。

设计模式-单例模式

原文:http://blog.51cto.com/5591787/2118879

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!