什么是单例设计模式:保证这个类的对象永远有且只有一个。
为什么要使用单例设计模式:有些功能只需要一个对象就够了,例如记录在线人数,用户数什么的,如果有多个对象,既不安全,也占资源
单例设计模式有两种:见如下两种声明方式
1.懒汉式
//设计单例模式 懒汉式
//先创建一个私有的静态对象
private static User user;
//创建一个私有的构造方法
private User(){
}
//创建一个公有的静态的返回对象的方法,需要判断
public static User getInstance(){
if(user == null){
user = new User();
}
return user;
}
2.饿汉式
//饿汉式
// 创建一个私有的静态对象,直接初始化
private static User user = new User();
// 创建一个私有的构造函数
private User(){}
// 创建一个公有的静态的返回对象的方法,直接return
public static User getInstance() {
return user;
}
3.二者的区别
饿汉式在类加载的时候就已经new了一个对象,时机比懒汉式要早,懒汉式是在真正调用getInstance()方法的时候才去创建user对象。
为什么要使用单例设计模式:有些功能只需要一个对象就够了,例如记录在线人数,用户数什么的,如果有多个对象,既不安全,也占资源
单例设计模式有两种:见如下两种声明方式
1.懒汉式
//设计单例模式 懒汉式
//先创建一个私有的静态对象
private static User user;
//创建一个私有的构造方法
private User(){
}
//创建一个公有的静态的返回对象的方法,需要判断
public static User getInstance(){
if(user == null){
user = new User();
}
return user;
}
2.饿汉式
//饿汉式
// 创建一个私有的静态对象,直接初始化
private static User user = new User();
// 创建一个私有的构造函数
private User(){}
// 创建一个公有的静态的返回对象的方法,直接return
public static User getInstance() {
return user;
}
3.二者的区别
饿汉式在类加载的时候就已经new了一个对象,时机比懒汉式要早,懒汉式是在真正调用getInstance()方法的时候才去创建user对象。