在了解单例模式之前,我们需要知道java中有种东西叫做设计模式,设计模式就是有经验的前人在开发中通过时间总结下来被后人所认可的设计思想,我们今天的主角**“单例模式”**就是其中的医院,接下来就让我们开始了解什么是单例模式以及如何实现吧
1. 什么是单例模式?
举个栗子,就像我们去商店买东西,不管是顾客也好,商店的管理员也好,我们在进行购买或者进货的时候,都需要用到同一个商店,顾客必然是有很多个,商店的管理员也肯定不止一个,但是商店一直只有一个
在代码中,也就是无论有多少个顾客对象,多少个商店管理员对象
他们操作的始终就是一个仓库的对象
而单例模式就是不管创建几次商店对象,返回的都是同一个商店对象
废话这么多,一句话概括就是 在整个程序中,有且只有一个对象,该类负责创建自己的对象,同时确保只有一个对象被创建*
2. 如何实现单例模式?
1.私有化构造器
2.定义一个类方法用于获得单例对象,返回值是这个类的类型
3.定义一个获取对象的方法,前面得提前定义好静态变量但不赋值,类型为父类的类型
4.在获取对象的方法里面进行判断,如果静态变量为空,则创建一个父类类型的变量赋值给它,然后返回静态变量
5.至此,当main方法中调用获得对象的方法时,只会赋值一次,多次调用返回的也只是第一次创建的对象
代码如下
class Student{
static Student s;
//首先定义私有构造方法
private Student(){
}
//获取对象
public static Student get(){
//进行判断 如果为空则赋值新对象 再次调用时,如果已经赋过值则会直接返回
if(s == null){
s = new Student();
}
return s;
}
}
public class Text6 {
public static void main(String[] args) {
Student s = Student.get();
System.out.println(s);
Student s1 = Student.get();
System.out.println(s1);
System.out.println(s == s1);
System.out.println(s.equals(s1));
}
}
这时我们如果判断s和s1是否相等,你猜结果会是什么?
可以看到,对象的地址完全相同哦,所以无论创建几次对象,返回的都是同一个对象,这也就是所谓的单例模式,单例模式的应用还是比较多的,如果一个类里面存有其他类都需要操作的数据,那么我们就可以使用单例模式来确保每一个类操作的都是同一个对象
以上仅仅是我本人的理解,如果有不对的地方还请多多批评,谢谢观看.如果觉得对你还有些帮助,就请点个赞再走吧,谢谢啦