文章目录
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修饰?