设计模式三:单例模式
1、概述
某个类的实例在 多线程环境下只会被创建一次出来。
单例模式有饿汉式单例模式、懒汉式单例模式;懒汉式如果多人同时调用,容易创建多个对象,有线程安全所以使用synchronized
2、应用场景
spring的 ioc思想中将对象创建并放入map容器中,用的就是单例模式。用的时候从map容器中取出使用即可。
3、示例
3.1、饿汉模式
public class Singleton{
private static Singleton instance = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return instance;
}
}
3.2、懒汉模式
public class Singleton{
private static Singleton instance;
private Singleton(){}
//这里需要加 线程同步。如果多个人同时调用,很容易创建多个对象
public static synchronized Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}