1.引言
单元素的枚举类型已经成为实现Singleton的最佳方法
-- 出自 《effective java》
2.单例模式的特点
- 单例模式三个主要特点:
- 1、构造方法私有化;
- 2、实例化的变量引用私有化;
- 3、获取实例的方法共有;
最近公司在做一个功能,需要做一个缓存,可是项目有点旧,又用不了redis,于是就想到了枚举单例来实现缓存的办法。下面是成功的枚举单例的例子。虽然Singleton只能存在一个,但是单例的map值key,value却可以有多个,正是利用了这一点来完成缓存。
package com.allianity.entity;
import com.allianity.LoginMark;
import com.sun.org.apache.regexp.internal.RE;
import java.util.HashMap;
import java.util.Map;
public enum Singleton {
INSTANCE;
private Map<String, LoginMark> map;
Singleton() {
map = (Map<String, LoginMark>) new HashMap<String,Log