码迷,mamicode.com
首页 > 其他好文 > 详细

单例设计模式

时间:2017-04-13 22:52:27      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:==   return   dem   调用   线程   span   懒汉式   demo   声明   

Day08_SHJavaTraing_4-13-2017

单例设计模式
1.饿汉式单例设计模式

 1 /*
 2 饿汉式单例设计模式
 3 */
 4 class HurrySingletonDemo
 5 {
 6     //1.私有化构造函数,阻止外部直接实例化本类对象
 7     private HurrySingletonDemo(){
 8     
 9     }
10     //2.在本类中创建唯一实例
11     private static HurrySingletonDemo hsd = new HurrySingletonDemo();
12     //3.3、对外提供公开的访问方法,获取这个唯一实例
13     static HurrySingletonDemo getInstance(){
14         return hsd;
15     }
16 }

2.懒汉式单例设计模式

 1 /*
 2 懒汉式单例设计模式
 3 */
 4 class LazySingletonDemo
 5 {
 6     //1.私有化构造函数
 7     private LazySingletonDemo(){
 8     
 9     }
10 
11     //2.声明本类的一个对象
12     private static LazySingletonDemo lsd;//不用给lsd赋初始值,因为引用类型数据的默认值为null
13 
14     //3.对外提供公开的访问方法
15     static LazySingletonDemo getInstance(){
16 
17         if(lsd == null){ //第一次调用lsd时才创建对象(此时lsd为null)
18             lsd = new LazySingletonDemo();//创建唯一的实例
19     }
20 
21     return lsd;
22 }
23 }

3.饿汉式单例设计模式和懒汉式单例设计模式对比
    3.1饿汉式:在加载类的同时就创建了这个类的唯一实例
        ①好处:可保证这个类的实例的唯一性
        ②弊端:如果只是使用这个类,但是暂时不需要它的对象,也会创建唯一实例,造成内存的浪费
    3.2懒汉式:在第一次调用获取实例的方法时才创建对象
        ①好处:第一次调用获取实例的方法时才创建对象,可以避免内存的浪费
        ②弊端:多线程环境下不能保证实例的唯一性

单例设计模式

标签:==   return   dem   调用   线程   span   懒汉式   demo   声明   

原文地址:http://www.cnblogs.com/EzraOholiabXue/p/Day08_SHJavaTraing_4-13-2017_01.html

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