单例模式的完美方式就是枚举,下面是一个最标准的枚举单例模式类Java代码。
/**
* @author Peter Cheung
* 2022/10/17 20:29
*/
public class User {
//属性用私有封装
private Integer id;
private String username;
private Date createTime;
//默认构造器私有封装
private User() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
//私有内部枚举
private enum UserEnum {
//单例
INSTANCE;
//私有对象属性
private final User user;
//枚举方法
UserEnum() {
user = new User();
}
//初始化
public User getInstance() {
return user;
}
}
//暴露共有初始化方法供新建对象使用
public static User getInstance() {
return UserEnum.INSTANCE.getInstance();
}
}
这样的单例模式,不仅逻辑清晰明了,而且多线程安全,效率高。