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

 ---------------------- android培训java培训、期待与您交流! -------------------

              

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

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

                                     1、将构造函数私有化。

                                     2、在类中创建一个本类对象。

                                     3、提供一个方法可以获取到该对象。

                  恶汉式:先初始化对象,类一进内存就已经创建好了对象。

                       class Single
                                      {
                                        private Single(){}
                                        private static Single s=new Single();
                                        public static Single getSingle()
                                                  {
                                                      return s;
                                                   }
                                         }

                  懒汉式:对象是方法被调用时才初始化,也叫做对象的延时加载。

                        class Single
                                     {
                                       private Single(){}
                                       private static Single s=null;
                                       public static Single getSingle()
                                                  {
                                                         if(s==null)
                                                          s=new Single();
                                                          return s;
                                                    }
                                        }
                  懒汉式由于有可能会出现一些弊端,导致在内存中不止出现一个对象,所以需要对以上代码进行优化,如下:

                         class Single
                                       {
                                         private Single(){}
                                         private static Single s=null;
                                         public static Single getSingle()
                                                 {
                                                     if(s==null)
                                                            {
                                                                   synchronized(Single.class)
                                                                        {
                                                                             if(s==null)
                                                                             s=new Single();
                                                                         }
                                                              }
       
                                                     return s;
                                                   }
                                             }

---------------------- android培训java培训、期待与您交流! -------------------

详细请查看:http://edu.csdn.net/heima

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值