为什么使用单独的字符串常数文件



给定字符串池适用于给定代码的方式,为什么首选创建一个用于存储常数的单独文件?

String str = "test";

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

主要重要性是国际化,拥有一个字符串文件意味着您有几个地方必须搜索可翻译的文本。

考虑一下您的应用程序受到打击并在开发其开发的语言环境外发货时,使用统一的字符串文件,您只需对文件内容进行简单的转换,而使用其他方法,则只需进行简单的转换将必须搜索每个文件并替换每个实例,然后您的应用程序几乎不适合不同地区的人使用。

一个很好的例子是字符串的Android资源系统。如果将字符串保留在特定文件中,则将它们管理并翻译它们更容易。

遵循优点您获得

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

出于简单的原因,您需要一些文字存储(不仅是文件等):如果您需要更改此文字的价值,那么您将仅在一个地方更改。因此,存在2个主要解决方案:

  1. 使用public static final Object CONSTANT字段使用常数类。
  2. 使用外部存储(例如,文件)

第一种情况有2个问题:首先,如果您更改此值,则需要重新编译项目。第二,如果某些框架使用的变量您需要直接在代码中传递此参数。另外,当您需要支持I18N时,您可能会在管理正确的变体方面遇到问题。

但是,当您使用外部储藏时,您需要的只是实现存储的解析器(我的意思是JSON,XML,DB等)。一些框架已经实现了此功能,因此您无需进行此项工作。

但是,您一定不能这样做,但这确实是一个很好的做法。

简单:因为代码重复是所有邪恶的根源。

从长远来看,

常数少于维护应用程序。一旦某些"属性"在不同的地方使用相同的含义 - 您要确保所有用法都是基于相同的定义。因此,当需要更新时,只需修改一行代码。而不是50岁,越来越有机会更新一个或另一种发生的机会。

,因为一切都有其位置,并且有一个地方。如果这是一个常数字符串,希望它永远不会更改并且在整个应用程序中都使用,那么逻辑将其决定(以及类似的内容),应分别定义维护和代码可读性问题。

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

最新更新