首先: 单利模式就是一个类,只允许创建一个对象。
Java:
实现方式一 饿汉式
//饿汉式 : 初始化类的时候, 就创建一个对象
static class Singleten1{
//构造方法
private Singleten1(){ }
private static final Singleten1 instance = new Singleten1();
//提供给外部的接口
public static Singleten1 getSingleten(){
return instance;
}
}
实现方式二 懒汉式
//懒汉式 : 只有第一次调用的时候才创建这个对象 double_check
// 这种方式,高并发下会有问题,所以要加锁,并且双次判断 。 ---- 知识点: double_check
static class Singleten2{
//构造方法
private Singleten2(){ }
private static Singleten2 instance ;
//提供给外部的接口
public static Singleten2 getSingleten2(){
if (instance == null){
synchronized (Singleten2.class){
if (instance == null)
instance = new Singleten2();
}
}
return instance;
}
}
------------------------------------ scala 单例模式 -------------------------------------
//定义一个Singleton类
class Singleton private(){
var x = 5
}
//定义一个Singleton object 饿汉式
object Singleton {
private val instance = new Singleton()
def getInstance() = {
//返回本类实例
instance
}
}