创建型模式之单例模式

Posted xiaosong1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建型模式之单例模式相关的知识,希望对你有一定的参考价值。

package test;

public class SingletonDemo1 {
/*单例模式 饿汉模式
* */
//类初始化时,立即加载这个对象,线程安全。缺点不能延迟加载
private static SingletonDemo1 st=new SingletonDemo1();
private SingletonDemo1() {}

//方法没有同步,调用效率高
public static SingletonDemo1 getSt() {
return st;
}
}

/**
* 单例模式之懒汉模式
* @author admin
*
*/
//类加载时不初始化,真正调用方法时才创建;能够延时加载
public class SingletonDemo2 {
private static SingletonDemo2 st;
private SingletonDemo2() {}
//缺点调用效率不高,加入同步锁,是因为线程在进行并发操作时,A刚结束,
//B线程又调用了方法创建了两个对象,不符合单例模式
public static synchronized SingletonDemo2 getSt() {
if(st==null) {
st=new SingletonDemo2();
}
return st;

}
}

package test;
/**
* 静态内部类实现单例模式
* @author admin
*
*/
//既能懒加载,调用效率高,线程安全。
public class SingletonDemo4 {
private static class SingletTonclassInstance{
private static final SingletonDemo4 instance=new SingletonDemo4();
}
private SingletonDemo4() {

}
public static SingletonDemo4 getInstance() {
return SingletTonclassInstance.instance;
}
}

package test;
/**
* 枚举类实现单例模式
* @author admin
*
*/
public enum SingletonDemo5 {
//这个枚举元素,本身就是单例对象,无懒加载
INSTANCE;
public void SingletonDemo5() {
//添加自己需要的操作
}
}

(后续还要补充,单例模式应用)

以上是关于创建型模式之单例模式的主要内容,如果未能解决你的问题,请参考以下文章

创建型模式之单例模式

3创建型模式之单例模式

设计模式之单例模式(创建型)

python设计模式---创建型之单例模式

创建型设计模式之单例模式

创建型模式之单例模式