- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在寻找有关如何为我的 Java 程序管理大量不同参数设置的具体想法。我知道这个问题有点分散,但我需要一些关于全局的想法,以便我的代码变得更易于维护。
我的项目所做的是对数据(主要是文本)执行许多处理步骤。这些处理步骤是不同复杂度的算法,通常有很多设置。我还想更改例如使用哪些处理步骤配置文件。
我的程序的目的是进行可重复的实验,因此我需要能够全面了解代码不同部分中使用的所有参数,最好是采用良好的格式。
在这个(原型(prototype))阶段,我在源代码中有如下设置:
public static final param1=0.35;
每个负责某些处理步骤的类都有自己的硬编码设置。这实际上非常可怕,因为没有简单的方法来更改事物,甚至无法查看完成了什么以及使用了哪些参数/设置。
我的想法是为所有设置创建一个中央键/值存储,同时支持所有设置的转储。示例:
k:"classA_parameter1",v:"0.35"
k:"classC_parameter5",v:"false"
但是,我真的不想只将参数存储为字符串,而是将它们关联到实际的 Java 类或对象。
拥有一个管理一切的单例“SettingsManager”是否更聪明。或者在 main 可以访问的每个类中都有一个 SettingsManager 对象?我真的不喜欢存储设置的字符串描述,但我看不到任何其他方式(假设一个设置是使用的 SAXparser 实现,另一个参数是 double ,例如百分比),因为我真的不想存储它们作为对象并转换它们。
非常感谢有关相关设计模式的经验和页面链接。
澄清一下,我的实验可以看作是一系列处理文件/数据库中的数据的算法。这些算法根据它们在整个过程中的任务分为不同的类别,例如
Experiment //main
InternetLookup //class that controls e.g. web scraping
ThreadedWebScraper
LanguageDetection //from "text analysis" package
Statistics //Calculate and store statistics
DatabaseAccess
DecisionMaking //using the data that we have processed earlier, make decisions (machine learning)
BuildModel
Evaluate
每个最低级别的类都有参数并且各不相同,但我仍然想要了解正在发生的一切。
最佳答案
您有以下选项,从最简单的开始:
后者允许从 XML 配置文件创建任何 Java 对象,但请注意它是一个框架,而不是一个库:这意味着它会影响整个应用程序的设计(它促进了控制反转模式)。
关于java - 在适当大小的 java 项目中可维护的参数设置设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12615820/
这段代码在 Java 中的等价物是什么?我放了一部分,我对 I/O 部分感兴趣: int fd = open(FILE_NAME, O_WRONLY); int ret = 0; if (fd =
我正在尝试将维度为 d1,d2,d3 的张量 M[a1,a2,a3] reshape 为维度为 d2, d1*d3 的矩阵 M[a2,a1*a3]。我试过 M.reshape(d2,d1*d3) 但是
我是一名优秀的程序员,十分优秀!