目前,我正在创建一个 java 项目,许多人将使用该项目(理论上)创建一个产品,每个人都有自己的一组配置,以简单、快速和标准化的机制。
如果我使用 GUI,处理不同文件中的配置会更容易,但是,因为我将其设为一个可编辑的项目,所以我发现自己需要将所有常量放在一个类中/文件,以便集中各个工程师配置他正在创建的产品的区域。因此我有以下 Constants 接口(interface):
public interface Constants {
//ROUTE OF FOLDERS
String PATH_ACTUALIZ = "..\\actualiz\\";
String PATH_ENTRADAS = "..\\entries\\";
String PATH_SALIDAS = "..\\outputs\\";
String PATH_ENTRADAS_CARTAS = PATH_ENTRADAS + "CARTAS\\";
String PATH_ENTRADAS_ANEXOS = PATH_ENTRADAS + "ANEXOS\\";
String PATH_SALIDAS_PDF = PATH_SALIDAS + "PDF\\";
//ROUTE OF FILES
String PATH_FILE_SPOOL_CLIENTE = PATH_ENTRADAS + "spool.txt";
String PATH_FILE_SPOOL_ERRORES = PATH_SALIDAS + "Reporte_de_Errores.txt";
String PATH_FILE_BASE_EMAIL = PATH_SALIDAS + "BaseEmail_[OP].txt";
String PATH_FILE_DATA_VAR = PATH_SALIDAS + "DataVar_[OP].txt";
String PATH_FILE_BASE = PATH_SALIDAS + "Base.obj";
String NAME_FILE_LOG = "Log.txt";
//DESIGNER
String DESIGNER_DELIMITER = "\t"; //Other options "»", "|"
String DESIGNER_CANAL = "AA01";
//GUI INFORMATION
String NAME_RESPONSABLE = "JOHN DOE";
String TITULO_MENSAJE_ERROR = "Error when processing the data.";
String TITULO_MENSAJE_INFORMACION = "Processing data";
//HTML
String HTML = "123";
//SEGMENTS
HashMap<String, String> HMSEGMENTO = new HashMap<String, String>(); //Initialization missing.
}
最后一行是一个HashMap
,因为数据涉及几对字符串到字符串,其中包括如果未找到提供的键则默认返回的一对,但是我发现自己在停滞不前,因为没有优雅/简单的方法将数据添加到接口(interface)内的 HashMap 。
我研究过的其他解决方案包括使用 Java Properties
,但我也无法在此界面中向其添加数据。
所以我更大的问题是我是否做得对。任何能够引导正确道路的软件开发资源或想法将不胜感激。
最后我明白我的问题有点宽泛。如果有办法使它更具体,我也将不胜感激。
最佳答案
严重不回答:不要这样做。
Java 发明了属性来准确地为您提供:在文本文件中指定运行时配置信息的能力。当您需要多个层时 - 也可以使用属性文件(例如,您可以有一个定义有用默认值的基本属性文件,然后不同的人可以提供自己的“覆盖”属性文件需要更改的那些属性)。
当您坚持使用接口(interface)来“包装”您的常量时(尽管这被认为是一种不好的做法) - 请不要将所有内容都填充到相同接口(interface)中。相反,请确定您需要的不同“类别”,并为每个类别创建一个文件。
您的方法最终会得到单一的意大利面条式代码。
关于java - 为模型项目创建配置接口(interface)(JAVA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48750000/