设计模式-单例

单例模式 

 

-1. 饿汉:

 

public class SingletonDemo3 { private static SingletonDemo3 instance = new SingletonDemo3(); private SingletonDemo3(){} public static SingletonDemo3 getInstance(){ return instance; } }

 

 

2. 懒汉:

 

一:

public class SingletonDemo1 { private static SingletonDemo1 instance; private SingletonDemo1(){} public static SingletonDemo1 getInstance(){ if (instance == null) { instance = new SingletonDemo1(); } return instance; } }

 

二:

 

public class SingletonDemo2 { private static SingletonDemo2 instance; private SingletonDemo2(){} public static synchronized SingletonDemo2 getInstance(){ if (instance == null) { instance = new SingletonDemo2(); } return instance; } }

 

 

3. 饿汉变种

public class SingletonDemo4 { private static SingletonDemo4 instance = null; static{ instance = new SingletonDemo4(); } private SingletonDemo4(){} public static SingletonDemo4 getInstance(){ return instance; } }

 

 

4.内部类

 

public class SingletonDemo5 { private static class SingletonHolder{ private static final SingletonDemo5 instance = new SingletonDemo5(); } private SingletonDemo5(){} public static final SingletonDemo5 getInsatance(){ return SingletonHolder.instance; } }

 

5. 枚举

 

public enum SingletonDemo6 { instance; public void whateverMethod(){ } }

 

 

6. double check

public class SingletonDemo7 { private volatile static SingletonDemo7 singletonDemo7; private SingletonDemo7(){} public static SingletonDemo7 getSingletonDemo7(){ if (singletonDemo7 == null) { synchronized (SingletonDemo7.class) { if (singletonDemo7 == null) { singletonDemo7 = new SingletonDemo7(); } } } return singletonDemo7; } }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值