设计模式,一个有些开发经验的RD都会听说过这个词,特别是经历过一段时间面试的RD,那么设计模式究竟是用来做什么的呢
分类
首先设计模式应该分为三大类
1.创建模式
2.结构模式
3.行为模式
单例模式
单利模式是属于创建模式的其中一种,众所周知,单例模式实现有两种方式懒汉式, 饿汉式
饿汉式
线程安全的实现方式
/**
* Created by New-Bee on 2017/3/15.
*/
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return instance;
}
}
懒汉式
/**
* Created by New-Bee on 2017/3/15.
* 该方式线程安全
*/
public class Singleton {
private static Singleton instance;
private Singleton(){}
public static synchronized Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}
另外还有一种双重锁的概念
/**
* Created by New-Bee on 2017/3/15.
*/
public class Singleton {
private volatile static Singleton instance;
private Singleton(){}
public static Singleton getSingleton(){
if(instance == null){
synchronized (Singleton.class){
if(instance == null){
instance = new Singleton();
}
}
}
return instance;
}
说明:
无论那种方式,通过上面代码可以看出,其无参构造一定要私有化,防止外部调用无参构造进行实例化对象,其代码实现总体来说都是先判断内存中是否有Instance存在,如果没有则创建Instance反之则返回,
下面就是一些使用场景
一些配置文件比如数据库配置,框架的一些配置信息,一般都会采用单例模式加载的内存中