什么是单例模式
单例模式是一种经典的设计模式;
设计模式就是软件开发中的棋谱,针对一些常见的场景,总结出来的代码编写套路
设计模式有很多种,在校招阶段主要考察两个设计模式.
1.单例模式
2.工厂模式
单例模式:
单例 -> 单个实例 -> 一个对象
也就是一个程序中的某个类,只能创建出一个对象,不能创建多个对象
能够从语法上禁止多创建对象
实现单例模式
主要有两种实现方式:
1.饿汉模式(急切)
2.懒汉模式(从容)
区别这两种模式
举个例子:
打开一个硬件上的文件,读取文件内容并显示出来
饿汉:把文件所有内容都读到内存中,并显示
懒汉:只把文件读一小部分,把当前屏幕填充上,如果用户翻页了,再读其他文件内容;
如果不翻页就不读其他文件
假设文件非常大的话,饿汉模式可能要卡半天才能打开
懒汉模式就能快速打开
代码:
class Singleton{
//禁止外部new实例
private Singleton(){};
//唯一实例的本体
private static Singleton instance = new Singleton();
//获取实例的方法
public static Singleton getInstance(){
return instance;
}
}
首先现将构造方法设成private,这样外部就无法通过new构造实例了;
然后设置一个private static的实例,和一个getInstance方法,
外部只能通过这个方法来得到这个唯一实例