为什么要使用单独的字符串常量文件?

时间:2017-09-04 16:41:06

标签: java

考虑到字符串池对给定代码段的工作方式,为什么首选创建一个单独的文件来存储常量?

String str = "test";

假设,字符串"测试"在整个应用程序中使用超过50次。为什么建议将其存储在常量文件中。现在,字符串池的工作方式实际上应该只创建一个对象,如果它不存在于池中,然后在需要时将该对象的引用共享到其他位置。那么为什么要创建一个单独的常量文件来存储常量?

6 个答案:

答案 0 :(得分:3)

国际化的重要性在于,拥有一个字符串文件意味着你有一些地方需要搜索可翻译的文本。

考虑一下当您的应用程序成为热门产品并将其发布到开发区域之外的情况时,使用统一的字符串文件,您只需对文件内容进行简单转换,使用其他方法,您必须搜索每个文件并替换每个实例,然后您的应用程序几乎不能用于不同语言环境中的人员。

一个很好的例子是字符串的android资源系统。如果您将字符串保存在特定文件中,则可以更轻松地管理它们并进行翻译。

答案 1 :(得分:1)

获得优势

  • 整个项目避免了代码重复。定义的字符串在整个项目中是不变的,可以在多个地方重复使用
  • 如果用户想要修改代码库中的字符串值,他/她只需要更改文件中的一个位置。
  • 字符串不会使您的项目代码混乱,使其清晰易维护
  • 如果您想支持其他语言的本地化/ i18支持,那么它将非常有用。将字符串放在资源文件中可以更容易地为不同语言提供每个字符串的单独翻译。

答案 2 :(得分:0)

因为一切都有它的位置,所有的东西都有。如果它是一个恒定的字符串,希望它永远不会改变并且它在应用程序范围内使用,那么逻辑规定它(以及它之类的东西)应该单独定义以便维护和代码可读性问题。

答案 3 :(得分:0)

简单:因为代码重复是万恶之源。

从长远来看,常量不是关于维护应用程序的性能。只要某些“属性”在不同的地方使用相同的含义,您就要确保所有用法都基于相同的定义。因此,当需要更新时,只需要调整一行代码。而不是50岁,因为更新一次或另一次事件而失踪的可能性越来越大。

答案 4 :(得分:0)

您需要为这些文字存储一些存储空间(不仅仅是文件等),原因很简单:如果您需要更改此文字的值,那么您只能在一个地方更改它。因此,存在两个主要解决方案:

  1. 将常量类与public static final Object CONSTANT字段一起使用。
  2. 使用外部存储(例如,文件)
  3. 第一种情况有两个问题:首先,如果更改此值,则需要重新编译项目。第二,如果某些框架使用了这些变量,则需要在代码中直接传递这些参数。此外,当您需要支持i18n时,您可能会遇到管理正确变体的问题。

    但是当你使用外部存储时,只需要为存储实现解析器(我的意思是json,xml,db等)。有些框架已经实现了这个功能,所以你不需要这样做。

    多么严厉,你不能这样做,但这只是非常好的做法。

答案 5 :(得分:0)

这是因为如果有人想在将来对此字符串进行更改,那么您不需要在整个项目中进行搜索。只需在常量文件中进行更改。