单例模式ensure one Class has only once instance.
怎么保证呢,将类的构造函数设为private,使得无法从外部获得该对象的实例,只能从内部获得
class Singleton
{
private Singleton singleton;
private Singleton(){}
public static getSingletonInstance
{
if(singleton == null)
{
singleton = new Singleton();
}
return singleton;
}
}
我们声明了一个static方法用于从外部获取该实例对象,当请求该方法时,先校验是否已经存在这样一个实例了,如果存在则返回,否则第一次也是最后一次new出这个实例
还有人提出了懒汉式和饿汉式的说法
我们上面写的就是典型的懒汉式,因为只有第一次调用时才会初始化第一个实例。
还有一种饿汉式就是直接在类内部实例化一个对象,然后静态方法种直接返回这个对象。