码迷,mamicode.com
首页 > 编程语言 > 详细

Java设计模式之单例设计模式

时间:2015-05-09 21:54:19      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

设计模式:

解决某一类问题最行之有效的方法,Java中23种设计模式。

单例设计模式(Singleton):解决一个类在内存中只存在一个对象

比如对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。

想要保证对象唯一:

为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象;

还为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象;

为了方便其他程序对自定义对象的访问, 可以对外提供一些访问方式;

单例设计模式之饿汉式

Single类一进内存,就已经创建好了对象,简单的说就是一上来就吃。

思路:

将构造函数私有化;

在类中创建一个本类对象;

提供一个公共的访问方法,可以获取到该类对象;

步骤:

//将构造函数私有化


private Single(){}

//在类中创建一个本类对象(final关键字等下有学到,是最终的意思,呵呵)


private finla static Single single =new Single();

//提供一个公共的访问方法,可以获取到该类对象


public static Single getInstance(){

return single;

}

 

 


单例设计模式之懒汉式

对象是方法被调用时才初始化,也叫对象的延时加载


Single类进内存,对象还没有存在,只有调用了getInstance方法时,才建立对象。

步骤:


private Single(){}


private static Single single =null;


public static Single getInstance(){


if(single==null){


synchronized(Single.class){


if(single==null)


single =new Single();

}

}


return single;

}

为什么有饿汉式还会有懒汉式?

原因就是对了面试,因为面试都是考懒汉式,因为要考虑到了多线程安全问题,使程序更加严谨。

实际开发中用饿汉式,因为在考虑多线程时会比较安全,懒汉式的解决安全问题的方法,双重判断,加入锁。
总结:

饿汉式:一上来就对对象初始化。

浪费一点点内存,因为不调用也执行嘛。
懒汉式:对象调用方法时,才初始化,也叫做对象的延时加载。

一点点内存都省,因为只有调用才占内存嘛。

 

Java设计模式之单例设计模式

标签:

原文地址:http://www.cnblogs.com/myliuliu/p/4491200.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!