import org.junit.Test;
/*单例的设计模式:
1.解决的问题:使得一个类只能够创建一个对象*/
public class TestSingleton {
@Test
public void testGetInstance() {
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
System.out.println(s1.equals(s2));
}
}
//只能创建Singleton的单个实例
class Singleton {
/*
* 饿汉式
*/
/*//1.私有化构造器,使得在类的外部不能够调用此构造器
private Singleton(){
}
//2.在类的内部创建一个类的实例
private static Singleton singleton = new Singleton();
//3.私有化此对象,通过公共的方法来调用
//4.此公共的方法,只能通过类来调用,因为设置为static的,同时类的实例也必须为static声明的
public static Singleton getInstance() {
return singleton;
}*/
/*
*懒汉式 :可能存在线程安全问题
*/
private Singleton(){
}
private static Singleton singleton=null;
public static Singleton getInstance() {
if(singleton==null){
singleton = new Singleton();
}
return singleton;
}
//典型的单例模式例子:java.lang.Runtime类
}