单例设计模式的一点心得

解决的问题:保证内存中只有一个对像(比如多个程序使用同一个配置信息);

实现: 1        不允许其它程序用new 创建该类对象

      2        在该类创建一个本类实例

      3        对外提值一个方法让其它程序获取该对象

 

步骤:        1        私有化该类构造函数;

      2        通过new在本类中创建一个静态本类对象

      3        定义一个公有的、静态的方法,将创建的对象返回(一般为getInstance()

饿汉式(开发时使用):        一上来就初始化一个实例

懒汉式(面试):                需要的时候再创建实例(延时加载),但在多线程时无法证对象的唯一性

 1                 class Single{                                        //饿汉模式
 2                 
 3                     private Single(){}                               //这样就不能在外面New了
 4                 
 5                     private static Single s = new Single();          //饿汉就自己new一个吧
 6                 
 7                     public static Single getInstance(){              //静态方法返回自己生产的那个对象,不过不管调用只能返回同一个哦~~
 8                         return s;
 9                     }
10                     void print(){
11                         System.out.println("Hello World!");
12                     }
13                 }
14                 
15                 class Single2{                                                          
16                     private Single2(){}
17                 
18                     private static Single2 s2 = null;                //懒汉模式与饿汉模式的区别就在这,需要了我再去new
19                 
20                     public static Single2 getInstance(){  
21                         if(s2 == null){
22                             s2 = new Single2();
23                         }
24                         return s2;
25                     }
26                 }
27                 
28                 public class SingleDemo{
29                     public static void main(String[] args){
30                         Single s = Single.getInstance();
31                         s.print();
32                         //Single s = new Single();
33                         //System.out.println("Hello World!");
34                     }
35                 }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值