Java基础学习生疏知识点总结(7)——单例模式

1、设计模式概述

       设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。

2、单例模式

(1)目的:使得类的一个对象成为该系统中的唯一实例
(2)定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供
(3)要点:
① :某个类只能有一个实例
② :必须自行创建实例
③ :必须自行向整个系统提供这个实例
(4)实现:
① :只提供私有的构造方法
② :含有一个该类的静态私有对象
③ :提供一个静态的公有方法用于创建、获取静态私有对象

3、关于单例模式的常见问题

3.1 public static SingletonOne getInstance(){}

问题1:该方法为什么用静态的?为什么要用这个类的类型作为返回值?
getInstance()方法的作用是实现该类对象的返回,因此需要设置该类类型作为返回值;至于static,则是因为对于单例模式而言,需要在类外能在无需产生对象实例的情况下,完成这个方法的调用,因此该方法需要设置为static。
问题2:只能叫这个名字么
方法名并不限定,只是一种推荐命名,见名知意。

3.2 关于对象实例化、对象引用、对象声明的关系

完整的对象实例化的过程,可以分为声明和实例化两部分,这两部分可以拆分也可以整合。
在这里插入图片描述

3.3 不是说,单例模式只能有一个对象吗,为什么在测试类里出现了两个SingletonOne的对象也不报错呢?

在这里插入图片描述
所谓单例模式只能有一个对象,是指无论应用该类型产生多少对象,都是指向唯一的堆空间,所以测试类中,只是声明了两个对象的引用指向了同一内存空间,不会报错。

3.4 单例模式中的类成员是否需要加final修饰?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值