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

---------------------- ASP.Net+Android+IO开发S.Net培训 、期待与您交流! ----------------------

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
单例设计模式:

---------------------
1、解决问题:

保证一个类在内存中的对象的唯一性

如软件的配置文件,可以使用单例,保证配置文件只有一份。


---------------------
2、如何保证对象唯一:

将构造函数私有化,避免外界程序创建对象。
类内部创建对象,自身进行实例化,从而调用功能(引用必须为私有静态的)。
为外界能访问此对象,将对象的引用通过公共访问方法暴露给外界(方法必须是静态的,才能被类调用)。

---------------------
3、两种格式

饿汉式:类一进内存,就已经创建好对象。
class Single
{
       private static final Single s= new Single();   【final可不加,加上更加严谨】
        privateSingle(){}
         public static SinglegetInstance()
         {
                  return s;
         }
}

---------------------
懒汉式:类进内存,对象还没有存在,只有调用了getInstance方法时,才建立对象。
-延时加载-synchronized 同步
class Single
{
         private static Single s = null;
         private Single(){}
         private static  SinglegetInstance()
         {
                  if(s==null)
         {
                  synchronized(Single.class)
         {
                  if(s==null)
                  s = new Single();
         }
         }
                                    return s;
         }
}




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

---------------------- ASP.Net +Android+IOS开发.Net培训 、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值