1. 概述:确保在一个类中只有一个实例,而且自行实例化并且能对整个系统提供实例对象 -------单例;
2. 类图:
3. 描述:私有的静态实例化对象;
私有的构造函数;
公有的静态方法;
单例模式根据 "实例化对象" 的不同,分为 "饿汉式" 和 "懒汉式";
饿汉式:单例类被加载的时候,就实例化一个对象交给自己引用。
懒汉式:只有加载这个单例类,然后调用这个类中方法的时候,才会实例化对象。
4. 代码<不插入了>:
1:饿汉式
public class Singleton{
private static Singleton s = new Singleton();
private Singleton(){ }
public static Singleton getSingleton(){
return Singleton;
}
}
2:懒汉式
public class Singleton{
private static Singleton s;
private Singleton(){ }
public static Singleton getSingleton(){
if( s == null ){
s = new Singleton();
}
return Singleton;
}
}
5. 优点:1.一个类中只有一个被实例化的对象,节省内存空间;
2.避免了创建销毁对象,提高了性能
3.避免了共享资源的多重占用
4.可以全局使用
6. 使用场景:1.需要频繁的实例化对象然后销毁对象。
2.创建对象时耗时过多或耗费资源过多,但有经常被用到的对象。
3.有状态的工具类对象。
4.频繁访问数据库或文件的对象