懒汉设计模式
1.说明
懒汉设计模式是需要获取对象时才创建,然后唯一
2.代码
package com.chen.singleton;
/**
* 单列懒汉模式
* @author chengming
*
*/
public class SingletomDemo1 {
private static User user = null;
//私有构造函数确保不能通过反射创建对象
private SingletomDemo1(){};
public static User getUser(){
synchronized(SingletomDemo1.class){
if(user == null){
user = new User();
}
}
return user;
}
public static void main(String[] args) {
User user = SingletomDemo1.getUser();
User user2 = SingletomDemo1.getUser();
if(user == user2){
System.out.println(true);
}else{
System.out.println(false);
}
}
}
如果打印为true,则表示user和user2是指向同一个对象,否则不是
饿汉设计模式
1.说明
饿汉设计模式时创建类时就创建该对象了,然后唯一
2.代码
package com.chen.singleton;
/**
* 单列模式,饿汉模式
* @author chengming
*
*/
public class SingletomDemo2 {
private static User user = new User();
public static User getUser(){
return user;
}
//私有构造函数,保证不能通过反射创建对象
private SingletomDemo2() {}
public static void main(String[] args) {
User user1 = SingletomDemo2.getUser();
User user2 = SingletomDemo2.getUser();
if(user1 == user2){
System.out.println(true);
}else {
System.out.println(false);
}
}
}
如果打印为true则表示user1和user2指向同一个对象,否则不是。