码迷,mamicode.com
首页 > 其他好文 > 详细

创建型模式之单例模式

时间:2020-05-14 23:54:37      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:demo1   enum   gets   ==   dem   void   并发   懒汉模式   懒汉   

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() {
//添加自己需要的操作
}
}

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

创建型模式之单例模式

标签:demo1   enum   gets   ==   dem   void   并发   懒汉模式   懒汉   

原文地址:https://www.cnblogs.com/xiaosong1/p/12891949.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!