Java单例模式:设计模式罗列;单例模式简介;单例模式:饿汉式;单例模式:懒汉式

本文深入探讨设计模式的三大类型:创建型、结构性和行为型,重点解析单例模式的实现方式,包括饿汉式和懒汉式的优缺点及适用场景。

1.设计模式罗列

           创建型模式:关注类和对象创建过程;

           结构性模式:关注类和对象的组合;

           行为型模式:关注对象之间的通信过程;

(注:设计模式不是理论推导的结果,而是在解决实际问题过程中的经验总结)


2.单例模式

基本要求:某个类只能有一个实例对象;类中必须要有创建实例的方法,并向外提供实力对象;

具体实现要求:(1)类的构造方法需要私有(private,这样就不能在类外通过new来获取实例对象了);

                         (2)类需要有一个静态(static)的私有(private)的对象 (为了保证有且只有一个实例对象);

                         (3)提供一个共有的静态(static)方法,用以创建、获取静态私有对象;

单例模式两种实现方案:饿汉式和懒汉式

饿汉式:在类加载的时候,就完成静态私有对象的实例化,是一种空间换时间的策略;

注:构造方法只执行一次,即在类加载过程中被调用一次;


懒汉式:在类加载时没有进行静态私有对象的实例化,只有用的时候才通过getInstance()方法去实例化,一种时间换空间的策略;

注:构造方法只执行一次,即在使用的时候,通过调用getInstance()方法时才执行;


饿汉式和懒汉式比较:

(1)饿汉式第一次使用时速度很快,但实例对象一直在哪儿,一直占着空间;懒汉式第一次使用时速度慢;

(2)饿汉式是线程安全的;懒汉式存在线程风险;(先知道即可,后续深入了解


总结:

具体哪些业务场景适合使用单例模式,需要逐渐摸索总结。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值