单例模式+ 枚举的巧妙运用,极大的减少数据库访问的时间开销

测试类:::

 package com.entity;

import java.util.HashMap;
import java.util.Map;

public class TestDemoParamUtil {
    public static void main(String[] args) {
        Map<Long,String> map=new HashMap<>();
        map.put(1001L,"南霸天");
        map.put(129L,"铸铁单");
        map.put(233L,"段天涯");
        map.put(1234L,"西门吹雪");
        // 数据初始化
        ParamUtil.getInstance().setQueryValueMap(map);
        // 第一种  取值方式
        String s1=ParamUtil.getInstance().getValue(ParamConfigEnum.ONE.getCode());
        // 第二种  取值方式
        String s2=ParamUtil.getInstance().getValue(1234L);
        // 第三种  取值方式
        String s3=ParamUtil.getInstance().getValue(ParamConfigEnum.getCode("参数名1"));

    }
}







单例 类


 package com.entity;
import java.util.Map;
public class ParamUtil {
    private volatile static ParamUtil ParamInstance;
    private ParamUtil() {
    }
    public static ParamUtil getInstance() {
        if (ParamInstance == null) {
            synchronized (ParamUtil.class) {
                if (ParamInstance == null) {
                    ParamInstance = new ParamUtil();
                }
            }
        }
        return ParamInstance;
    }
    private Map<Long, String> queryValueMap;
    public Map<Long, String> getQueryValueMap() {
        return queryValueMap;
    }
    public void setQueryValueMap(Map<Long, String> queryValueMap) {
        this.queryValueMap = queryValueMap;
    }
    public String getValue(Long code){
       return this.queryValueMap.get(code);
    }
}

以下 是 枚举类

package com.entity;

public enum ParamConfigEnum {
    ONE("参数名1", 1001),    // 参数1
    TWO("参数名2", 129),     //参数2
    THREE("参数名2", 233),   // 参数3
    FOUR("参数名3", 1234);   // 参数4
    // 成员变量
    private String name;
    private long code;

    // 构造方法
    ParamConfigEnum(String name, long code) {
        this.name = name;
        this.code = code;
    }

    // 普通方法
    public static long getCode(String name) {
        for (ParamConfigEnum c : ParamConfigEnum.values()) {
            if (c.getName().equals(name)) {
                return c.code;
            }
        }
        return 0L;
    }

    // get set 方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public long getCode() {
        return code;
    }

    public void setCode(long code) {
        this.code = code;
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值