单例模式

一.  什么情况下用单例模式

1. 类只需被实例化一次

2. 类能自己创建自己的一个实例

3. 类提供对外的接口,供全局实用

二. 单例用的最多的两种模式

1. 恶汉式:一开始就实例化

public class Singleton( ){

            private Singleton ( ){

                          //在自己内部定义自己一个实例
                    //注意这是private 只供内部调用

                         private static Singleton instance = new singleton;

           }

           //这里提供了一个供外部访问本class的静态方法

           public static Singleton getInstance ( ){

                         return instance ;  

          }

}

2. 懒汉式:需要时才实例化

public class Singleton( ){

            private static Singleton instance = null ;

            public static synchronized Singleton getInstance() {

                        //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次

                        //使用时生成实例,提高了效率!

                        //synchronized,解决了多线程问题,所以synchronized很重要,不能没有

                         if (instance==null)
                     instance=new Singleton();
                   return instance;   

            } 

           //这里提供了一个供外部访问本class的静态方法

         public static Singleton getInstance ( ){

                      return instance ;   

         }

}

















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值