单例设计模式及四种实现方式
定义: 一种软件设计模式。
要点: 一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行对系统提供这个实例。 (通俗的说:希望对象只创建一个实例,并且提供一个全局的访问点获取该实例。)
作用: 一是解决多线程并发访问的问题;二是节约系统内存,提高系统效率和性能。
实现条件:
1、构造方法必须是private的,从而不能在外部通过new创建实例;
2、在类的内部,提供唯一的类类型的属性,必须是private static的;
3、在类的内部,提供获取该实例的public static方法。
- 实现方式一:
立即加载 /“饿汉模式”: 使用类的时候已经创建完毕了,不管以后会不会用到,直接实例化;很着急的样子,所以是饿汉式;
public class Singleton{
private static Singleton instance=new Singleton();
private Singleton(){};
public static Singleton getInstance(){
return instance;
}
}
优点:实现起来简单,没有多线程同步问题。
缺点:当类被加载的时候,会初始化static的instance,静态变