首页 > 其他 > 详细

设计模式之单例模式案例

时间:2020-05-27 11:47:00      阅读:32      评论:0      收藏:0      [点我收藏+]

设计思路:1.创建静态私有对象;2.构造方法私有化;3.静态公有的对象地址方法

 

一.

/**
* @author jiagx
* @description 单例模式-线程不安全版本
* @date 2020/5/27 9:54
*/
public class Singleton {

private static Singleton singleton;

private Singleton(){
};

public static Singleton getInstance(){
if (singleton==null){
singleton=new Singleton();
}
return singleton;
}

}


二.
/**
* @author jiagx
* @description 单例模式-同步锁单例模式
* @date 2020/5/27 9:58
*/
public class SingletonSyn {
private static SingletonSyn singleton;

private SingletonSyn(){};

public static synchronized SingletonSyn getInstance(){
synchronized (SingletonSyn.class){
if (singleton==null){
singleton=new SingletonSyn();
}
}
return singleton;
}
}


三.
/**
* @author jiagx
* @description 单例模式-双层校验锁机制的同步锁单例模式
* @date 2020/5/27 10:12
*/
public class SingletonSyn2 {

private static SingletonSyn2 singletonSyn2;

private SingletonSyn2(){

}


public static synchronized SingletonSyn2 getInstance(){

if (singletonSyn2==null){
synchronized (SingletonSyn2.class){
if (singletonSyn2==null){
singletonSyn2=new SingletonSyn2();
}
}
}
return singletonSyn2;
}
}


四.
/**
* @author jiagx
* @description 单例模式-无锁线程安全单例模式,最优秀的单例模式
* @date 2020/5/27 10:38
*/
public class SingletonSynNoLock {

private final static SingletonSynNoLock singletonSynNoLock = new SingletonSynNoLock();

private SingletonSynNoLock(){};

@Synchronized
public static SingletonSynNoLock getInstance(){
return singletonSynNoLock;
}

}

设计模式之单例模式案例

原文:https://www.cnblogs.com/guangxiang/p/12971168.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!