【03】【单例模式】
程序开发
2023-09-17 21:25:05
Singleton(单例模式):保证一个类仅有一个实例,并提供一个访问它的全局访问点。
类型:创建类模式
类图:
单例模式有两种常见方式:
饿汉式:
public class Singleton {private static final Singleton singleton = new Singleton();public static Singleton getInstance() {return singleton;}private Singleton() {}public void doSomething() {// doing something}
}
懒汉式:
public class Singleton {private static Singleton singleton = null;public static Singleton getInstance() {if (singleton == null) {singleton = new Singleton();}return singleton;}private Singleton() {}public void doSomething() {System.out.println("doing something...");}
}
单例模式的优点:
1、内存中只有一个实例,减少内存开支,特别是在频繁创建对象时。
2、内存中只有一个实例,减少性能开销,特别是在一个对象产生需要较多资源开销。
3、避免对资源的多用占用。
4、可以在系统设置全局访问点,优化和共享资源访问。
单例模式的缺点:
1、一般没有接口,扩展困难。
2、对测试不利,单例类必须完成后才可以测试。
3、与单一职责原则冲突。
单例模式的使用场景:
1、要求生成唯一序列号的环境。
2、整个项目中需要一个共享访问点或共享数据。
3、创建一个对象消耗的资源过多。
4、需要大量的静态常量和静态方法的环境。
注意事项:
懒汉式单例模式在多线条件下不安全。可以通过同步方式解决,优先使用饿汉式单例模式。
标签:
上一篇:
springboot2 admin的使用
下一篇:
相关文章
-
无相关信息