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

为模型项目(JAVA)创建配置接口,java,Java,目前,我正在创建一个java项目,许多人将使用该项目(理论上)创建一个产品,每个人都有自己的一组配置,使用简单、快速和标准化的机制 如果我使用的是GUI,那么在不同的文件中处理配置就更容易了,但是,因为我把它变成了一个可编辑的项目,我认为自己需要将所有常量放在一个类/文件中,以便集中各个工程师配置他正在创建的产品的区域。因此,我有以下常量接口: public interface Constants { //ROUTE OF FOLDERS String PATH_ACTUALI

目前,我正在创建一个java项目,许多人将使用该项目(理论上)创建一个产品,每个人都有自己的一组配置,使用简单、快速和标准化的机制

如果我使用的是GUI,那么在不同的文件中处理配置就更容易了,但是,因为我把它变成了一个可编辑的项目,我认为自己需要将所有常量放在一个类/文件中,以便集中各个工程师配置他正在创建的产品的区域。因此,我有以下常量接口:

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.

}
公共接口常数{
//文件夹的路由
字符串路径_-actualizez=“..\\actualizez\\”;
字符串路径_ENTRADAS=“..\\entries\\”;
字符串路径_SALIDAS=“..\\outputs\\”;
字符串PATH_ENTRADAS_CARTAS=PATH_ENTRADAS+“CARTAS\\”;
字符串PATH_ENTRADAS_ANEXOS=PATH_ENTRADAS+“ANEXOS\\”;
字符串PATH_SALIDAS_PDF=PATH_SALIDAS+“PDF\\”;
//文件传送
字符串路径\u文件\u SPOOL\u客户端=路径\u ENTRADAS+“SPOOL.txt”;
字符串PATH\u FILE\u SPOOL\u errors=PATH\u SALIDAS+“Reporte\u de\u errors.txt”;
字符串PATH\u FILE\u BASE\u EMAIL=PATH\u SALIDAS+“BaseEmail\u[OP].txt”;
字符串PATH\u FILE\u DATA\u VAR=PATH\u SALIDAS+“DataVar\u[OP].txt”;
字符串PATH_FILE_BASE=PATH_SALIDAS+“BASE.obj”;
字符串名称\u FILE\u LOG=“LOG.txt”;
//设计师
字符串设计器_分隔符=“\t”//其他选项“»”、“|”
字符串设计器_CANAL=“AA01”;
//图形用户界面信息
字符串名称\u RESPONSABLE=“JOHN DOE”;
字符串TITULO\u MENSAJE\u ERROR=“处理数据时出错。”;
字符串TITULO_MENSAJE_INFORMACION=“处理数据”;
//HTML
字符串HTML=“123”;
//分段
HashMap HMSEGMENTO=新建HashMap();//缺少初始化。
}
最后一行是一个
HashMap
,因为数据涉及多对字符串,包括一对默认情况下在找不到提供的键时返回的字符串,但是我发现自己处于停顿状态,因为没有优雅/简单的方法在接口内向HashMap添加数据

我研究过的其他解决方案包括使用Java
属性
,但我也无法在此接口中向其添加数据

所以我更大的问题是我是否做得对。如果您有任何关于软件开发的资料或想法,并且能够指引正确的道路,我们将不胜感激


最后我明白我的问题有点宽泛。如果有更具体的方法,我也会很感激你的帮助。

严肃的回答:不要这样做

Java发明了属性来准确地为您提供:在文本文件中指定运行时配置信息的能力。当您需要多个图层时,也可以使用属性文件(例如,您可以有一个定义有用默认值的基本属性文件,然后不同的人可以提供他们自己的属性文件“覆盖”他们需要更改的那些属性)

当你坚持使用接口来“包装”你的常量时(尽管这被认为是一种糟糕的做法)——请不要把所有东西都塞进相同的接口中。相反,请确定您需要的不同“类别”,并为每个类别创建一个文件


您的方法最终决定使用单一的意大利面代码。

可以说是一种。使用枚举,或者如果某个键的值可以更改,则创建一个封装属性的类。@GhostCat我正在等待是否有人对该主题有任何其他意见。但你的回答确实帮了大忙。我会接受的,当然。我也很欣赏这种快速的回归。耶哈,只要再投一张赞成票和69K。是时候了……我不知道Java属性也可以用于多层数据。我会调查的。谢谢。@Yokhen确切地说:如果你想对属性进行分层,你必须进行一些设计/实现。我不认为“基本”实现可以做到这一点。另一方面,你自己在这里做点什么也不难。