/*
Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点。
* 单例模式的三个要素:
* 私有的构造方法(private,防止其他类实例化Singleton)
指向自己实例的私有静态引用 (private,将实例化交给自己,而不是被其他类实例化)
以自己实例为返回值的静态的公有的方法 (只对外提供一个public的方法用来返回实例化的对象)
*/
package com.test.model;
/*
* 这是懒汉式
*
* 所谓“懒汉式”与“饿汉式”的区别,是在与建立单例对象的时间的不同。
*
* 懒汉式在你真正用到的时候才去建这个单例对象;饿汉式一开始就建立了对象,相对占用资源。
* 相比 饿汉式 ,懒汉式线程不安全,要用双重锁定
*/
public class Singleton {
private Singleton(){ }
private static Singleton singleton=null;
public static Singleton getStance(){
if(singleton==null){
singleton=new Singleton();
}
return singleton;
}
}
/*
* 饿汉式(推荐),线程安全
*/
class Singleton2 {
private Singleton2(){ }
private static Singleton2 singleton=new Singleton2();
public static Singleton2 getStance2(){
return singleton;
}
}
单例模式
最新推荐文章于 2024-09-15 22:03:14 发布