java - 为模型项目创建配置接口(interface)(JAVA)

标签 java

目前,我正在创建一个 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/

相关文章:

java - Textlocal API 仅向一个用户发送短信,不向其他用户发送短信

java - 使用 OwlApi 从带有标签的 owl 文件中提取子类

java - 获取 .exe 的版本信息

java - GAE,可以持久化但无法加载(createQuery)实体

java - SDR/搜索映射冲突

java - 从 Java 配置文件中读取配置参数的最佳方法是什么?

java - 带有内容过滤或屏蔽 soap 字段的 CXF 日志记录请求和响应

java - 我在实现 Android 聊天气泡时遇到错误

java - jsp中的IE后退按钮问题

java - 如何在java中打印反向数字图案三角形