/*设计模式
* 必须对于多个程序使用同一个配置信息对象时,就需要保证其对象的唯一性
* 如何保证对象的唯一性
* 不允许其程序new创建对象
* 在该程序中创建一个本类实例
*对外提供一个方法让其他方法可以获取该对象
*/
/*
2.步骤:私有化该 构造函数
通过new创建一个在本类对象
定义一个公有的方法,将创建对象返回.
*/
public class Demo5 {
public static void main(String [] args)
{
TestBug t =TestBug.getIntance();
t.setNum(10);
System.out.println(t.getNum());
TestBug t1 =TestBug.getIntance();
t1.setNum(20);
System.out.println(t1.getNum());
Single s = Single.getintance();
Single s1= Single.getintance();
System.out.println(s==s1);
}
}//饿汉式
class Single{
static Single s = new Single();
private Single()
{
}
public static Single getintance()
{
return s;
}
}
//懒汉式
class Single2//类加载进来,没有对象,只调用了getintance方法,才会创建对象
{ //延迟加载
private static Single2 s =null;
private Single2(){}
public Single2 getintance()
{
if(s==null){
s = new Single2();
}
return s;
}
}
class TestBug{
private int num;
private static TestBug t = new TestBug();//new一个静态的本类对象
private TestBug()//私有化构造函数
{
}
public static TestBug getIntance()//定义一个公有的静态方法
{
return t;
}
public void setNum(int num)
{
this.num =num;
}
public int getNum()
{
return num;
}
}
* 必须对于多个程序使用同一个配置信息对象时,就需要保证其对象的唯一性
* 如何保证对象的唯一性
* 不允许其程序new创建对象
* 在该程序中创建一个本类实例
*对外提供一个方法让其他方法可以获取该对象
*/
/*
2.步骤:私有化该 构造函数
通过new创建一个在本类对象
定义一个公有的方法,将创建对象返回.
*/
public class Demo5 {
public static void main(String [] args)
{
TestBug t =TestBug.getIntance();
t.setNum(10);
System.out.println(t.getNum());
TestBug t1 =TestBug.getIntance();
t1.setNum(20);
System.out.println(t1.getNum());
Single s = Single.getintance();
Single s1= Single.getintance();
System.out.println(s==s1);
}
}//饿汉式
class Single{
static Single s = new Single();
private Single()
{
}
public static Single getintance()
{
return s;
}
}
//懒汉式
class Single2//类加载进来,没有对象,只调用了getintance方法,才会创建对象
{ //延迟加载
private static Single2 s =null;
private Single2(){}
public Single2 getintance()
{
if(s==null){
s = new Single2();
}
return s;
}
}
class TestBug{
private int num;
private static TestBug t = new TestBug();//new一个静态的本类对象
private TestBug()//私有化构造函数
{
}
public static TestBug getIntance()//定义一个公有的静态方法
{
return t;
}
public void setNum(int num)
{
this.num =num;
}
public int getNum()
{
return num;
}
}