//20210117
写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现单例模式
/**
* hunger man mode
*/
public class HungerSingleton {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private static volatile HungerSingleton hungerSingleton;
private HungerSingleton(){}
public static HungerSingleton newInstance(){
return hungerSingleton;
}
}
/**
* lazy man mode
*/
public class LazySingleton {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private static volatile LazySingleton lazySingleton;
private LazySingleton(){}
public static LazySingleton newInstance(){
if(lazySingleton==null){
lazySingleton = new LazySingleton();
}
return lazySingleton;
}
}
public class Singleton_Double_Check {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private static volatile Singleton_Double_Check singletonDoubleCheck;
private final static Object lock_ = new Object();
//私有化构造器
private Singleton_Double_Check(){
}
public static Singleton_Double_Check newInstance(){
if(singletonDoubleCheck ==null){
synchronized (lock_){
if(singletonDoubleCheck ==null){
singletonDoubleCheck = new Singleton_Double_Check();
}
return singletonDoubleCheck;
}
}
return singletonDoubleCheck;
}
}
以上
希望对大家有所帮助
原文:https://www.cnblogs.com/lavender-pansy/p/14288651.html