素材巴巴 > 程序开发 >

【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的使用 下一篇:
素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。