设计模式 -- 单例模式(Singleton Pattern)
作者:互联网
当系统中只需要一个实例或者一个全局访问点的时候可以使用单例模式。
-
优点:节省系统创建对象的资源,提高了系统效率,提供了统一的访问入口,可以严格控制用户对该对象的访问。
-
缺点:只有一个对象,积累的职责过重,违背了单一职责原则。构造方法为private,无法继承,扩展性较差。
懒汉式单例
public class Singleton {
private static Singleton instance;
private Singleton() {
}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
双层校验锁单例
public class Singleton {
private static volatile Singleton instance;
private Singleton() {
}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if(instance ==null){
instance = new Singleton();
}
}
}
return instance;
}
}
容器单例(饿汉模式)
public class Singleton {
private final static Singleton INSTANCE= new Singleton();
private Singleton() {
}
public static Singleton getInstance(){
return INSTANCE;
}
}
静态内部类单例
public class Singleton {
private Singleton() {
}
private static class SingletonInstance {
private final static Singleton INSTANCE = new Singleton();
}
public static Singleton5 getInstance() {
return SingletonInstance.INSTANCE;
}
}
枚举单例
public enum Singleton {
INSTANCE;
}
根据以下文章总结:
-
Java设计模式:23种设计模式全面解析(超级详细)HYPERLINK http://c.biancheng.net/design_pattern/ n委派模式在JDK以及Spring源码中的应用_蒙奇D灬小武的博客-CSDN博客
-
设计模式 https://blog.csdn.net/shusheng0007/category_8638565.html 永不磨灭的设计模式(有这一篇真够了,拒绝标题党)_ShuSheng007的博客-CSDN博客_永不磨灭的设计模式
-
java设计模式 https://blog.csdn.net/qq_37909508/category_8976362.html
-
设计模式 在源码中的应用 https://blog.csdn.net/qq_36970993/category_10620886.html
-
Android系统设计中存在设计模式分析 https://www.2cto.com/kf/201208/150650.html
-
Android设计模式系列 - 基于android的各种代码分析各种设计模式 https://www.cnblogs.com/qianxudetianxia/category/312863.html
标签:Singleton,E8%,--,private,static,设计模式,public 来源: https://blog.csdn.net/scoryy/article/details/123636803