快速上手单例模式 - 一步步详解
作为我在网络上的首次亮相,我希望确保未来能持续更新这个博客。现在,让我们花5分钟快速掌握单例模式(Singleton Pattern)的实现。作为许多人接触的第一个设计模式,单例看似简单易用,但 ironically 往往成为痛苦的根源——当你意识到最初的实现并不正确时。
更多细节将在后续讨论。本文旨在帮助你正确实现单例模式,并理解其不同类型。
与其他模式一样,单例模式也有其设计目标。
动机
单例模式确保一个类只有一个实例,并提供对该实例的全局访问点。
优势
单例模式的简单优势包括:
- 受控的访问
- 允许可变数量的实例(通过扩展)
- 减少命名空间污染
使用场景
当类必须只有一个实例时使用。
实现步骤:详解
-
创建一个类
1
public class SimplySingleton{}
-
声明成员变量 该变量用于保存单例实例。必须为
private
(防止外部访问)和static
(确保全局唯一实例)。1
private static SimplySingleton simplySingleton = null;
-
声明私有构造器 私有构造器阻止其他类实例化此类。
1
private SimplySingleton(){}
-
创建全局访问点 通过静态方法提供实例访问:
1
public static SimplySingleton getInstance(){}
外部调用方式:
SimplySingleton.getInstance();
-
实现实例创建逻辑 方法应返回
SimplySingleton
实例,并确保仅创建一次:1 2 3 4 5
// 4a. 检查变量是否为null? if(simplySingleton != null) return simplySingleton; // 4b. 否则创建新实例 else return simplySingleton = new SimplySingleton();
完整代码示例
|
|