1. 设计模式基础认知
在软件开发领域,设计模式就像建筑师的蓝图,是经过验证的解决方案模板。我第一次接触设计模式是在处理一个多线程日志系统时,当时为了确保全局只有一个日志实例,偶然发现了单例模式这个神器。而工厂模式则是在重构一个电商平台的支付模块时,为了解决多种支付方式创建混乱的问题而引入的。
设计模式主要分为三大类:创建型、结构型和行为型。今天我们要重点讨论的两种模式都属于创建型模式,它们都围绕着"对象创建"这个核心问题展开,但解决的场景却截然不同。理解它们的差异就像区分螺丝刀和扳手——都是工具,但使用场景和发力方式完全不同。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 单例模式深度剖析
2.1 单例模式的核心要义
单例模式确保一个类只有一个实例,并提供一个全局访问点。这就像公司里的CEO职位——无论什么时候问"谁是CEO",得到的都应该是同一个对象引用。我在实际项目中遇到过几个典型应用场景:
- 数据库连接池(避免重复创建连接)
- 应用配置管理(保证配置一致性)
- 日志系统(统一写入日志文件)
2.2 经典实现方案对比
饿汉式单例是最简单的实现方式:
java复制public class CEO {
private static final CEO instance = new CEO();
private CEO() {}
public static CEO getInstance() {
return instance;
}
}
这种方式在类加载时就创建实例,线程安全但可能造成资源浪费。就像公司还没开张就先雇好了CEO,有点浪费工资。
懒汉式单例则更灵活:
java复制public class CFO {
private static volatile CFO instance;
private CFO() {}
public static CFO getInstance() {
if (instance == null) {
synchronized (CFO.class) {
if (instance == null) {
