gpt4 book ai didi

java - 在适当大小的 java 项目中可维护的参数设置设计模式

转载 作者:搜寻专家 更新时间:2023-11-01 01:08:27 25 4
gpt4 key购买 nike

我正在寻找有关如何为我的 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

每个最低级别的类都有参数并且各不相同,但我仍然想要了解正在发生的一切。

最佳答案

您有以下选项,从最简单的开始:

  1. A Properties文件
  2. Apache Commons Configuration
  3. Spring Framework

后者允许从 XML 配置文件创建任何 Java 对象,但请注意它是一个框架,而不是一个库:这意味着它会影响整个应用程序的设计(它促进了控制反转模式)。

关于java - 在适当大小的 java 项目中可维护的参数设置设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12615820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com