一、饿汉式:(开发中用)
1、构造方法私有化
2、类对象在本类中创建,并且本实例对象私有化
3、提供公有的static方法获取该私有实例对象
实例:
/*
* 单例设计模式:饿汉式(开发中用)
* 1、首先在本类中创建一个对象
* 2、本实例私有化
* 3、提供公有的获取实例的方法
* 4、由于不能在本类以外创建对象,所以只能用类本身调用此公有方法,所以需static修饰此公有方法
*/
public class Student {
//私有化此对象,避免本类以外修改此对象
private static Student student = new Student();
//提供公有的获取实例的方法,此方法static修饰
public static Student getInstance(){
return student;
}
//构造方法私有化,使得不能在本类以外创建对象
private Student(){}
二、懒汉式:(面试中用)
1、构造方法私有化
2、在本类中先声明实例对象
3、提供共有的static方法获取该实例对象
4、在多线程的情景下,该方法可能会被同时调用,所以需加同步synchronized
实例:
//私有化实例对象,使得本类以外不能更改此声明
private static Person person;
//提供共有的获取实例的方法,为避免多线程场景共同调用此方法产生一场,需加同步
public static synchronized Person getInstance(){
if(person == null){
person = new Person();
}
return person;
}
//私有化构造方法,使得本类外不能创建对象
private Person(){}