单例模式是一种常用的设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。
核心概念
- 确保只有一个实例:单例类必须保证只有一个实例存在。
- 全局访问点:提供一个全局访问点供外部获取这个实例。
实现方式
以下是一个简单的单例模式实现:
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
使用场景
- 控制对象实例数量:例如,数据库连接池,只允许有一个连接实例。
- 需要全局访问点:例如,日志记录器,只允许有一个实例来记录日志。
优缺点
优点:
- 控制实例数量:避免创建多个实例造成的资源浪费。
- 全局访问点:方便全局访问和管理。
缺点:
- 破坏封装性:单例模式可能会破坏类的封装性,因为客户端可以访问到单例类的内部实现。
- 扩展性差:单例模式难以扩展,因为单例类的实例是固定的。
相关链接
更多关于设计模式的介绍,请访问设计模式概述。