单例设计模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点
1.构造方法私有化
2.声明一个本类对象
3.给外部提供一个静态方法获取对象实例
两种实现方式:饿汉式和懒汉式
何种情况下使用呢?当一个类中没有属性(对象的状态);该类作为工具类使用非常频繁;
好处:节省内存(因为不断创建对象会消耗内存)
public class Practice14 { public static void main(String[] args) {
// TODO Auto-generated method stub
Single s=Single.getInstance();
s.method();
}
}
//饿汉式
class Single{
private static Single single=new Single();
private Single(){ //构造方法私有化,为了防止在本类外部实例化对象 }
public static Single getInstance(){
return single;
}
public void method(){
System.out.println("method");
}
}
//懒汉式
class Single2{
private static Single2 single=null;
private Single2(){ //构造方法私有化 }
public static Single2 getInstance(){
if(single==null){
single=new Single2();
}
return single;
}
public void method(){
System.out.println("method");
}
}