12.3每日总结

单例模式

单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点以访问该实例。

单例模式包括以下几个关键要素:

1. 私有的构造函数:确保没有其他类可以直接实例化单例类。

2. 静态变量:用于保存该类的唯一实例。

3. 静态方法:用于获取该类的实例,通常命名为getInstance()。

单例模式有以下几种常见的实现方式:

1. 饿汉式:在类加载的时候就创建实例,线程安全,但可能会造成资源浪费。

2. 懒汉式:在第一次调用getInstance()方法时才创建实例,可能存在线程安全问题,需要在方法上加锁或使用双重检查锁定等方式解决。

3. 静态内部类:通过静态内部类的方式实现延迟加载,并且保证线程安全。

4. 枚举:使用枚举类型来实现单例,枚举类型的实例只能被实例化一次。

单例模式的优点包括:

- 提供了全局唯一的实例,避免了重复创建对象,节省了系统资源。
- 对于需要频繁访问的对象,可以提高性能。

然而,单例模式也存在一些缺点:

- 可能会造成资源浪费,特别是在饿汉式实现中。
- 可能会引发多线程并发访问的问题,需要特别注意线程安全性。

总的来说,单例模式适用于需要确保全局只有一个实例的场景,如配置信息、数据库连接池、日志对象等。但在使用单例模式时需要注意线程安全性和资源的合理利用。

posted @ 2023-12-03 23:59  ME社长  阅读(27)  评论(0)    收藏  举报