Java应用程序中的全局映射
我想知道在Java应用程序中进行全局映射的最佳实践是什么 假设我有一个带有映射的文本文件:Java应用程序中的全局映射,java,unit-testing,design-patterns,tdd,application-design,Java,Unit Testing,Design Patterns,Tdd,Application Design,我想知道在Java应用程序中进行全局映射的最佳实践是什么 假设我有一个带有映射的文本文件: key1:value1 key2:value2 ... keyN:valueN 文件很大,键和值都是任意的,所以我不能真正使用Enum 在Java应用程序中,我将实例化一组以键作为输入的类(请注意,代码在现实中更合适,只是尝试将其抽象和简单): 我希望我的代码简单,重要的是,可以测试。避免使用Spring之类的框架 到目前为止,我想到的是:创建一个Holder类,它只是HashMap的一个包装器,包含其
key1:value1
key2:value2
...
keyN:valueN
文件很大,键和值都是任意的,所以我不能真正使用Enum
在Java应用程序中,我将实例化一组以键作为输入的类(请注意,代码在现实中更合适,只是尝试将其抽象和简单):
我希望我的代码简单,重要的是,可以测试。避免使用Spring之类的框架
到目前为止,我想到的是:创建一个Holder类,它只是HashMap的一个包装器,包含其他初始化方法:
class MappingHolder {
private Map<String, String> keyValueMap = new HashMap();
public MappingHolder(String filePath){
keyValueMap = ...; //init from the file
}
public MappingHolder(Map initMap) { //constructor useful for testing
keyValueMap = initMap;
}
public String get(String key) {
return keyValueMap.get(key);
}
public class SomeClass {
...
private static MappingHolder mappingHolder = new MappingHolder();
private String getValue() {
return mappingHolder.getValue();
}
public class SomeClass {
...
private MappingHolder mappingHolder = MappingHolder.getInstance();
private String getValue() {
return mappingHolder.getValue();
}
因此,如果有人能推荐这种方法,无论是如何进一步发展我自己的方法,还是我可能缺少的更好的方法,那就太好了。谢谢 您的类
MappingHolder
在JRE中有一个实现,名为。它还可以从.properties
和.xml
文件加载映射,并且可以链接在一起…@UsagiMiyamoto,的确如此!但是这个类似乎强加了它自己的XML格式,而我必须使用外部分层XML格式,实际上它不包含字面上的键值,而是需要从结构中推断它们。我将编辑后,使这一部分更清楚。
public class SomeClass {
...
private String getValue() {
return MappingHolder.getValue()
}
public class SomeClass {
...
private static MappingHolder mappingHolder = new MappingHolder();
private String getValue() {
return mappingHolder.getValue();
}
public class SomeClass {
...
private MappingHolder mappingHolder = MappingHolder.getInstance();
private String getValue() {
return mappingHolder.getValue();
}