java学习 单例模式
一.设计模式
1.1 概述
代表了最佳实践方式,通常被有经验的面向对象的软件开发工作人员采用 是众多有经验的开发人家,经过很长时间的使用和错误总结出来的,用来解决一系列特定问题 它不是语法规范,而且一套用来提高代码的复用性、可读性、可维护性、鲁棒性及安全性的解决方案 目前比较成熟的有23种
二.单例模式
2.1 目的
多次获取,只创建一个实例化对象,获取到的是同一个对象
2.2 创建思路
1.构造方法私有化,让外部无法创建对象
2.对外提供一个用于获取对象的静态方法
3.提供一个静态变量,保存创建的对象
2.3 应用场景
1.当类的创建成本较高或实例化过程复杂时,适合使用单例模式。
2.当一个类需要在整个系统中提供唯一的全局访问点,如配置管理、数据库连接池等。
3.当需要频繁访问且无需多个实例的对象,如缓存、日志等。
3.2.4 两种模式
1.懒汉模式 懒汉式属于一种延迟加载的单例模式,它的特点是在第一次使用时创建实例对象,而不是在类加载时就创建。
public static Singleton{ private Singleton(){} private static Singleton obj = null; public static Singleton getlnstance(){ if(obj == null){ obj = new Singleton(); } return obj; } }
2.饿汉模式 饿汉式是一种在类加载时就创建实例的单例模式。它的特点是无论是否会被使用到,实例对象都在类加载时被创建。
public static Singleton{ private Singleton(){} private static Singleton obj = new Singleton(); public static Singleton getlnstance(){ return obj; } }