/*测试单例模式的两个例子
* 一般分三个步骤(A)定义一个私有的构造器
* (B)定义一个私有、静态的变量指向自己
* (C)定义一个公有、静态的访问方法用于返回该类的一个唯一实例
*
*
*/
package org.whb.test.demo724;
// 这是第一种方法!
class Singleton1
{
private static Singleton1 singleton = new Singleton1();
private Singleton1(){}
public static Singleton1 getSingleton(){
return singleton;
}
}
class Singleton2
{
private static Singleton2 singleton = null;
private Singleton2(){}
//实现同步,需要的时候再进行初始化
public static synchronized Singleton2 getSingleton(){
if(singleton==null){
singleton = new Singleton2();
}
return singleton;
}
}
public class TestSingleton{
public static void main(String[] args){
Singleton1 sing1 = Singleton1.getSingleton();
Singleton1 sing2 = Singleton1.getSingleton();
System.out.println(sing1);
System.out.println(sing2);
}
}
/* 运行结果:(指向同一个对象)
* org.whb.test.demo724.Singleton1@c17164
* org.whb.test.demo724.Singleton1@c17164
*/