gpt4 book ai didi

java - 加载处理程序列表 - 是否使用属性文件或反射

转载 作者:行者123 更新时间:2023-11-30 04:40:04 25 4
gpt4 key购买 nike

在我的团队当前正在进行的项目中,我们有数十个用于实现公共(public)接口(interface)的特定事件的处理程序,并且当它们监听的事件发生时会调用它们。

问题是:我们是否应该使用属性文件来配置我们当前拥有的处理程序,或者使用反射来列出实现公共(public)接口(interface)的所有类?

使用属性文件的优点:

  • 更灵活、更容易禁用特定处理程序。
  • 在不同的环境中可能有不同的配置。

使用反射的优点:

  • 更易于部署,无需维护类添加/删除的属性文件。
  • 更加防错,因为我们不需要处理属性文件中的纯文本并使用类加载器加载它们。

我现在正在两者之间犹豫。是否存在普遍认为的“良好做法”?

最佳答案

在这两个选项中,我会投票支持使用属性文件。它可能涉及维护更多文件,但显式配置总是比隐式配置更好。它还将使刚接触您的代码库的人更容易了解正在发生的事情。

我还建议您使用依赖注入(inject)(Spring 或 Guice)。 Spring DI 满足您的要求。您可以显式配置使用哪些处理程序,并且可以轻松地为生产、UAT 等创建不同的文件。我们有类似的模式,并且 Spring 运行得很好。

关于java - 加载处理程序列表 - 是否使用属性文件或反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12506399/

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