单例模式是一种经常被使用到的模式, 像是在spring等主流框架中,我们会经常看到它的声影,那么什么是单例模式
定义: Ensure a class has onle one instance, and provide a global point of access to it (确保某一个类只能生成一个实例,而且自行实例化并想整个系统提供这个实例)
样例:
饿汉式
package com.mjlf.test;
/**
* @auther a123
* @create 2017-12-03 16:49
* @desc 单例模式测试
*/
public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton(){
}
public static Singleton getSingleton(){
return singleton;
}
}
懒汉式:
package com.mjlf.test;
/**
* @auther a123
* @create 2017-12-03 16:52
* @desc 懒汉式单例模式
*/
public class Singleton1 {
private static Singleton1 singleton1 = null;
private Singleton1(){
}
public static Singleton1 getSingleton1(){
if(singleton1 == null){
//防止线程安全问题
synchronized (Singleton1.class){
//思考此处为什么还要加判断
if(singleton1 == null){
singleton1 = new Singleton1();
}
}
}
return singleton1;
}
}