单例模式是23种设计模式之首,也是为数不多的,在面试中需要手写出来的面试题目,它的作用在于,在内存中实例化一个对象,而且有且只有一个对象,代码如下。
//2.隐藏构造方法,防止外部调用者新建对象。
private singleton(){
}
//3.给一个公开实例化的方法。
public static singleton getInstance(){
//如果类instance没有被新建过,新建一次。
if(instance==null){
instance=new singleton();
}
return instance;
//1.新建一个本类的静态变量,没有进行初始化
public class singleton{
private static singleton instance;//2.隐藏构造方法,防止外部调用者新建对象。
private singleton(){
}
//3.给一个公开实例化的方法。
public static singleton getInstance(){
//如果类instance没有被新建过,新建一次。
if(instance==null){
instance=new singleton();
}
return instance;
}
}
下面为测试类
public class Test1 {
public static void main(String[] args) {
Singleton s= Singleton.getSingleton();
Singleton s1=Singleton.getSingleton();
System.out.println(s==s1);
}
}
得到的结果是true,所以证明单例模式,确实只有一个对象,而且尝试 Singlet构造方法on s=new Singleton();会出现错误,因为构造方法被私有化了,只有本类可以使用该构造方法