邯郸邯山区网站建设,命令删除wordpress 缓存,wordpress 自动回复,临沂建筑模板厂生产厂家文章目录 一、单例模式概述二、单例模式特点三、示例3.1、基本实现#xff08;懒汉式-线程不安全#xff09;3.2、基本实现#xff08;懒汉式-线程安全#xff09;3.3、基本实现#xff08;饿汉式#xff09; 四、总结 一、单例模式概述
单例模式#xff08;Singleton … 文章目录 一、单例模式概述二、单例模式特点三、示例3.1、基本实现懒汉式-线程不安全3.2、基本实现懒汉式-线程安全3.3、基本实现饿汉式 四、总结 一、单例模式概述
单例模式Singleton Pattern是一种常用的软件设计模式它的主要目的是确保一个类只有一个实例并提供一个全局访问点来访问这个实例。这种模式可以避免多个实例的产生有助于节省系统资源并保证在整个应用中该类的方法和状态的一致性。
二、单例模式特点
私有构造函数为了防止其他对象实例化该类单例类的构造函数通常被声明为私有的。静态内部实例单例类内部包含一个静态的成员变量用于存储唯一实例。公共获取方法单例类提供一个静态方法来安全地返回实例。这个方法通常会处理线程安全和延迟初始化等问题。线程安全性在多线程环境下需要确保单例模式是线程安全的即无论多少线程同时访问都只能创建一个实例。延时初始化就是这个单例对象什么时候被初始化提前初始化饿汉式第一次被调用时初始化懒汉式。
三、示例
3.1、基本实现懒汉式-线程不安全
public class Singleton {private static Singleton instance;// 私有构造函数private Singleton() {}// 公共静态方法线程不安全public static Singleton getInstance() {if (instance null) {instance new Singleton();}return instance;}
}3.2、基本实现懒汉式-线程安全
public class Singleton {private volatile static Singleton instance;private Singleton() {}// 双重检查锁定public static Singleton getInstance() {// 第一次判空if (instance null) {// 第二次创建时加锁保证线程安全synchronized (Singleton.class) {if (instance null) {instance new Singleton();}}}return instance;}
}3.3、基本实现饿汉式
public class Singleton {// 构建的时候就初始化private static Singleton instance new Singleton();private Singleton() {}public static Singleton getInstance() {return instance;}
}四、总结
单例模式在实际开发中非常常见尤其是在管理配置文件、日志对象、数据库连接等方面。不过需要注意的是单例模式也有其局限性比如过度使用会导致代码变得难以测试和维护。因此在使用时需要权衡利弊。