单例模式:
在内存中有且只有 一个实例
单例模式有分为两种 : 饿汉模式和懒汉模式
它们的区别是:
饿汉模式-->在jvm加载完毕的时候,实例就存在在内存中了
懒汉模式-->在你使用它的时候实例才会初始化实例
饿汉单例设计模式 步骤:
1.私有化构造函数
2.声明一个本类的成员变量,并引用一个本类的实例变量
3.提供一个公共的静态方法来获取该类的实例
懒汉单例设计模式 步骤:
1.私有化构造函数
2.声明本类的引用类型变量,但是不要创建对象
3.提供一个公共的静态方法获取实例对象,在获取之前先判断是否已经创建了本类对象,
如果已经创建就直接返回,如果没有创建 就先创建再返回
下面分别是两者的代码
package com.mo;
/**
* Created by 莫文龙 on 2018/2/23.
*/
//饿汉模式
public class Singleton {
//1.私有化构造函数
private Singleton() {}
//2.声明一个本类的成员变量,并引用一个本类的实例变量
private static Singleton singleton = new Singleton();
//3.提供一个公共的静态方法来获取该类的实例
public static Singleton getInstance() {
return singleton;
}
}
package com.mo;
/**
* Created by 莫文龙 on 2018/2/23.
*/
//懒汉模式
public class Singleton {
//1.私有化构造函数
private Singleton() {}
//2.声明本类的引用类型变量,但是不要创建对象
private static Singleton singleton;
//3.提供一个公共的静态方法获取实例对象,在获取之前先判断是否已经创建了本类对象,
//如果已经创建就直接返回,如果没有创建 就先创建再返回
public static Singleton getInstance() {
if(singleton == null) {
singleton = new Singleton();
}
return singleton;
}
}