单例设计模式 面试题

来源:互联网 发布:电脑编程哪儿工资高 编辑:程序博客网 时间:2024/05/16 19:47
/*设计模式
 * 必须对于多个程序使用同一个配置信息对象时,就需要保证其对象的唯一性
 * 如何保证对象的唯一性
 * 不允许其程序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;
}

}





0 0