JAVA 项目中自定义全局数据的demo

在项目开发中,我们经常遇到全局数据的使用问题,比如在class A、class C、class ..... 中调用class B的数据,那我们要什么实现呢,其实也很简单,下面列出几个种常用的方式。

1、以文件的形式保存数据。

2、以数据库形式保存数据。

3、以自定义类形式保存数据。

根据项目需求选择合适自己的方式。

这里写了个第3点的demo:

import java.util.HashMap;

//自定义类,继承HashMap
public class FrequencyTransformTools extends HashMap<String,Integer> {
    //声明HashMap,用于管理数据
    private HashMap<String,Integer> frequencyHash = new HashMap<>();
    private static FrequencyTransformTools frequencyTransformTools;

    //返回当前实例
    public static FrequencyTransformTools getInstance(){
        if (frequencyTransformTools == null){
            frequencyTransformTools = new FrequencyTransformTools();
        }
        return frequencyTransformTools;
    }
    //初始化数据
    public void Initialize(){
        frequencyHash.put("1",2412);   frequencyHash.put("2",2417);   frequencyHash.put("3",2411);
        frequencyHash.put("4",2427);   frequencyHash.put("12",2467);  frequencyHash.put("60",5300);
        frequencyHash.put("5",2432);   frequencyHash.put("13",2472);  frequencyHash.put("64",5320);
        frequencyHash.put("6",2437);   frequencyHash.put("36",5180);  frequencyHash.put("149",5745);
        frequencyHash.put("7",2442);   frequencyHash.put("40",5200);  frequencyHash.put("153",5765);
        frequencyHash.put("8",2447);   frequencyHash.put("44",5220);  frequencyHash.put("157",5785);
        frequencyHash.put("9",2452);   frequencyHash.put("48",5240);  frequencyHash.put("161",5805);
        frequencyHash.put("10",2457);  frequencyHash.put("52",5260);  frequencyHash.put("165",5825);
        frequencyHash.put("11",2462);  frequencyHash.put("56",5280);
    }

    //实现put接口
    @Override
    public Integer put(String key, Integer value) {
        return frequencyHash.put(key, value);
    }

    //实现get接口
    @Override
    public Integer get(Object key) {
        return frequencyHash.get(key);
    }
}

然后在主线程中调用getInstance()对该类初始化操作

FrequencyTransformTools.getInstance().Initialize();//初始化

之后就可以在项目中的其它类调用它的数据的了

int frequency = FrequencyTransformTools.getInstance().get(chanel);

思路就是这样子,根据自己的需求,可以存储不同的数据类型。

##################################2018/08/15################################

今天看Android物联网开发一书中有一段话,跟上面的代码的思想有点相似。

原文:“在项目中可能需要多处HTTP通信,这时不需要为每次请求都创建一个新的HttpClient,因为HttpClient就像一个小型浏览器,在整个项目中,有一个就够了。因此得出,使用简单的单例的足够了。”

上文的 getInstance() 的设计思想跟原文中指出的单例是一样的,在实际项目中遇到类似的场景不妨参考参考。

猜你喜欢

转载自blog.csdn.net/sinat_32862717/article/details/81670010