关于系统设计中的一些参数存储方式的选择:使用常量or使用数据库表

在开发应用系统中,经常要设置一些参数,而且这些参数以后可以添加或扩展的,常用的处理方式有2种:
写在配置文件中 或写在数据库表中。
配置文件中:但调用时直接使用常量定义;
数据库表中:调用时根据一个key查找该表中对应的value使用;

这2种方式各有什么优缺点呢?

配置文件容易改,数据库不容易改
配置文件容易移动,数据库不容易移动
配置文件修改结构容易,数据库修改结构难
配置文件只能用系统权限控制,数据库可以用数据库权限控制
配置文件大了,就跟数据库表差不多了

两者之间你还有一个选择:用数据库表来存配置文件

两者都挺慢的,最好内容不要太多,确定运行时会更改的才写在配置文件里

要高速度,必须硬编码到源文件里

如果配置文件一大堆,你应该考虑用解释执行的脚本语言,灵活性和速度都会提高

补充一些硬编码的情况:

譬如需要写一个性能很高的字典。
你需要写一个code generator,读取字典配置写成源文件编译。

另一种情况是逻辑很易变,那就要用ClassLoader的方式装载类,
在可以热装载的类里,硬编码的参数修改起来代价也不高。