package com.shundong.javacore;
/**
* java写一个简单的单例类
* @author shundong
*
*/
class Singleton
{
//使用一个类变量来缓存曾经创建的实例
private static Singleton instance;
//对构造进行隐藏(private)
private Singleton(){}
/**
* 提供一个静态方法
* 该方法加入了自定义控制 保证只产生一个Singleton对象
* @return 返回Singleton 实例
*/
public static Singleton getInstance()
{
/**
* 如果instance为null,表示还不曾创建Singleton对象
* 如果instance不为null,表示已经创建Singleton对象
*/
if(instance==null) {
//创建Singleton对象 并将其缓存
instance = new Singleton();
}
return instance;
}
}
//for test
public class SingletonTest
{
public static void main(String[] args)
{
//创建实例不能通过构造!!!
//必须通过getInstance !!!单例 o了
Singleton aSingleton1 = Singleton.getInstance();
Singleton aSingleton2 = Singleton.getInstance();
System.out.println(aSingleton1==aSingleton2);
}
}
最近面试发现是该好好整理一下了 想到了有一次面试叫我手写一个 单例模式 就又写了一遍