黑马程序员——单例设计模式

原创 2015年11月19日 20:13:58
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

单例模式

      单例模式,顾名思义,当需要保证某个类只能有一个实例时,就要使用单例。

如何保证类在内存中只有一个对象:

     1.控制类的创建,不让其他类来创建本类的对象。即自定义私有构造函数。

    2.在本类中定义一个本类的对象。

    3.提供公共的访问方式,将自己创建的对象提供出去。

实现方式:

class Singleton{
	//1.私有构造器
	private Singleton(){}
	//2.创建本类对象
	private static Singleton s = new Singleton();
	//3.对外提供公共访问方法
	public static Singleton getInstance(){
		return s;
	}
}

      该实现方式称为“饿汉式”,代码简洁,是开发中最常用的单例实现方式。

class Singleton{
	//1.私有构造器
	private Singleton(){}
	//2.声明一个本类的引用,并初始化为null
	private static Singleton s = null;
	//3.对外提供公共访问方式
	public static Singleton getInstance(){
		//利用双重判断提高效率
		if(s==null){
			//同步代码块的使用解决了多线程访问的安全问题
			synchronized(Singleton.class){
				if(s==null)
				   s = new Singleton();
			}
		}
		return s;
	}
}

    该实现方式称为“懒汉式”,是单例的另一种实现方式,开发中很少用。

   两种实现方式的区别

       饿汉式是以空间换时间,即首先创建对象,相对于懒汉时来说比较浪费空间,但代码实现简单,节省了时间;

       懒汉式是以时间换空间,对象延迟创建,但代码实现繁琐,且多线程访问时容易发生安全隐患。

       所以,在实际使用过程中,多数情况使用饿汉式。

版权声明:本文为博主原创文章,未经博主允许不得转载。

黑马程序员-----单例设计模式

在学习面向对象中第一次接触到设计模式这个概念。何为设计模式呢?设计模式是解决问题的一种思想,是一种行之有效的解决方式。        学到的第一种设计模式叫做单例设计模式。下面来看一下单例设计模式: ...
  • tw_kjh1207
  • tw_kjh1207
  • 2015年07月21日 20:41
  • 192

黑马程序员————————单例设计模式

多线程(单例设计模式)单例设计模式:保证类在内存中只有一个对象。如何保证类在内存中只有一个对象呢? (1)控制类的创建,不让其他类来创建本类的对象。private (2)在本类中定义一个本类的...
  • Smi1eMiss
  • Smi1eMiss
  • 2015年12月10日 15:30
  • 106

黑马程序员----单例设计模式

单例设计模式创建 其中Single ss = Single.s;就可以对对象进行操作,那是不是public static Single getInstance()就是废话了? 答案:不是,public...
  • u013664820
  • u013664820
  • 2014年03月04日 21:38
  • 360

黑马程序员—单例设计模式

------- android培训、java培训、期待与您交流! ----------   单例设计模式 解决的问题:保证一个类在内存中的对象唯一性。 比如:多程序读取一个配置文件时,建议配置文...
  • yang535328110
  • yang535328110
  • 2014年01月08日 09:42
  • 324

黑马程序员————单例设计模式

单例设计模式:实现单例对象的情况 单例设计模式
  • LeonWenBo
  • LeonWenBo
  • 2014年09月05日 11:57
  • 241

黑马程序员——单例设计模式

------- android培训、java培训、期待与您交流! -------   单例模式是指:对于一个类在内存中只能存在唯一一个对象,     饿汉式(先初始化对象,Single类一进内存就创...
  • u012865586
  • u012865586
  • 2013年12月20日 21:44
  • 343

黑马程序员------- 单例设计模式-------

------- android培训、java培训、期待与您交流! ---------- 单例设计模式 public class Demo_Single { public static v...
  • sinianyingzi
  • sinianyingzi
  • 2014年01月11日 22:43
  • 267

《黑马程序员》单例设计模式

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------ 设计模式:解决问题最行之有效的方法!是一种思想! 单例设计模式: ...
  • chen_yying
  • chen_yying
  • 2012年11月25日 00:37
  • 157

黑马程序员_单例设计模式

------- android培训、java培训、期待与您交流! ---------- 单例设计模式:解决一个类在内存中只存在一个对象。 想要保证对象唯一 1,为了避免其他程序过多建立该类对象,先...
  • yan896485622
  • yan896485622
  • 2013年08月30日 14:32
  • 205

黑马程序员 单例设计模式

思想: 1,不让其他程序创建该类对象。 2,在本类中创建一个本类对象。 3,对外提供方法,让其他程序获取这个对象。 步骤: 1,因为创建对象都需要构造函数初始化,只要将本类中的构造函数私有化...
  • li13615680696
  • li13615680696
  • 2015年04月21日 20:54
  • 207
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员——单例设计模式
举报原因:
原因补充:

(最多只允许输入30个字)