单例模式优点:
1,实例控制:单例模式防止其它对象对自己的实例化,确保所有的对象都访问一个实例。
单例模式的缺点:
举例说明:
package com.it.Singleton;
/**
* 单例模式又称单态模式
* @author Gaoxu
*2015-1-28
*/
public class SingletonTest {
//私有的构造器
private SingletonTest(){}
//单例模式又分为懒汉模式和饿汉模式
//1.懒汉模式
private static SingletonTest SingletonA = null;
public static synchronized SingletonTest getInstancesA(){
if(SingletonA == null){
SingletonA = new SingletonTest();
}
return SingletonA;
}
/**
* 在上面代码中,使用了判断语句。
* 如果instance为空,再进行实例化,这成为lazy initialization。
* 注意getInstance()方法的synchronized,这个synchronized很重要。
* 如果没有synchronized,那么使用getInstance()在第一次被访问时有可能得到多个Singleton实例。
*/
//2.饿汉模式
private static final SingletonTest SingletonB = new SingletonTest();
public static SingletonTest getInstancesB(){
return SingletonB;
}
/**
* 上面代码先产生一个final的对象,之后的都是一样的
* 所以也是产生了单一的对象
*/
}