package cn.china;
public class Single {
public static void main(String[]args){
// S singles=S.getInstance();
// S singless=S.getInstance();
// System.out.println(singles==singless);
Test tt=Test.getInstance();
Test ttt=Test.getInstance();
tt.setNum(10);
ttt.setNum(20);
System.out.println(tt.getNum());
System.out.println(ttt.getNum());
}
/**
* 单类设计模式:
* 解决的问题,就是可以保证一个类在内存中的对象唯一性
*如何确保对象唯一性呢?
*1、不允许其他程序用new创建该类对象。
*2、在该类中创建一个本类实例。
*3、对外提供一个方法让其他程序可以获取该对象
*步骤:
*1、私有化该类构造函数
*2、通过new在本类中创建一个本类对象
*3、定义一个共有方法,将创建的对象返回。 */
}
//饿汉式
class S{
private static S single=new S();
private S(){}
public static S getInstance(){
return single;
}
}
class Test{
private int num;
private static Test t=new Test();
private Test(){}
public static Test getInstance(){
return t;
}
public void setNum(int num){
this.num=num;
}
public int getNum(){
return this.num;
}
}
//懒汉式
class single2{//类加载进来没有对象,只有调用了getInstance方法时,才会创建对象。
private static single2 s=null;
private single2(){}
public static single2 getInstance(){
if(s==null)
s=new single2();
return s;
}
}