单例模式

单例模式

单例模式
饿汉式
1
2
3
4
5
6
7
8
9
10
11

package com.data.sheji;

public class SingleInstance {
private static SingleInstance singleInstance = new SingleInstance();
private SingleInstance(){}

private static SingleInstance getSingleInstance(){
return singleInstance;
}
}

懒汉式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.data.sheji;

//懒汉式
public class SingleInstance2 {
private static SingleInstance2 singleInstance = null;
private SingleInstance2(){}

private static SingleInstance2 getInstance(){
if (singleInstance == null) {
return new SingleInstance2();
}
return singleInstance;
}
}

双重验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

package com.data.sheji;

//双重验证
public class SingleInstance3 {
private static SingleInstance3 singleInstance3 = null;

public static void SingleInstance3(){}

public static SingleInstance3 getInstance3(){
if (singleInstance3 == null) {
synchronized (SingleInstance3.class) {
if (singleInstance3 == null) {
return new SingleInstance3();
}
}
}
return singleInstance3;
}
}

class SingleInastance4{
private static void SingleInastance4(){}
private static class SingleHolder{
private static SingleInastance4 singleInastance = new SingleInastance4();
}

public static SingleInastance4 getInstance(){
return SingleHolder.singleInastance;
}

}

本文标题:单例模式

文章作者:雷凯博

发布时间:2020年06月11日 - 20:06

最后更新:2021年05月16日 - 19:05

原始链接:http://yoursite.com/2020/06/11/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

坚持原创技术分享,您的支持将鼓励我继续创作!
-------------本文结束感谢您的阅读-------------
0%