单例模式无疑是23种设计模式中最简单的一个,在实际开发项目开发中也比较常用。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
笔者总结单例模式的三要素:
①、私有的静态本类对象(防止外部类调用此单例对象)
②、私有的构造方法(防止通过new来创建单例对象)
③、返回该类对象的共有的静态工厂方法(可以通过“类名.getInstance()”方法得到单例对象)
懒汉与饿汉模式各有其优势:
懒汉模式:以时间换空间,当调用工厂方法时才为成员分配内存,但当执行时,会多花很长时间。
笔者总结单例模式的三要素:
①、私有的静态本类对象(防止外部类调用此单例对象)
②、私有的构造方法(防止通过new来创建单例对象)
③、返回该类对象的共有的静态工厂方法(可以通过“类名.getInstance()”方法得到单例对象)
其中其中单例模式又分为懒汉、饿汉两种模式
class Singletion {
// ①、私有的静态本类对象
private static Singletion singletion;
// ②、私有的构造方法
private Singletion() {
}
// ③、返回该类对象的共有的静态工厂方法
public static Singletion getInstance() {
if (singletion == null) {
singletion = new Singletion();
}
return singletion;
}
}
class Singletion {
// ①、私有的静态本类对象
private static Singletion singletion = new Singletion();
// ②、私有的构造方法
private Singletion() {
}
// ③、返回该类对象的共有的静态工厂方法
public static Singletion getInstance() {
return singletion;
}
}
懒汉与饿汉模式各有其优势:
懒汉模式:以时间换空间,当调用工厂方法时才为成员分配内存,但当执行时,会多花很长时间。
饿汉模式:以空间换时间,初始化类时便为成员分配内存,这样可以节省程序运行时间,但会一直占用内存。