单例模式

单例模式分为饿汉式和懒汉式,区别在于懒汉式是延时加载所以线程并不是安全的,如果同时两个线程去创建单例对象这样就会造成线程安全问题,需要进行一些同步锁的操作来进行线程安全管理,而饿汉式是一种预加载的方式,保证了统一的实例不会造成线程安全问题。

饿汉式:

//在自己内部定义自己的一个实例,只供内部调用
private static final SingIn instance = new SingIn();
private SingIn(){}
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static SingIn getInstance(){
    return instance;
}

懒汉式:

private static SingIn instance = null; 
public static synchronized SingIn getInstance() {         
// 这个方法比上面有所改进,不用每次都进行生成对象,只是第一次  
// 使用时生成实例,提高了效率!  
   if (instance == null)  
        instance = new SingIn();  
   return instance;  
}  

你可能感兴趣的:(单例模式)