有没有办法实现配置文件改动但不需要同步更改代码,该如何解决
有没有办法实现配置文件改动但不需要同步更改代码
RT。
比如原来有类似下面格式的配置文件
【Connection_1】
Type = 1 ## 1: Server | 2: Client
LocalIP = 10.137.20.151
LocalPort = 9827
RemoteIP = 10.137.20.77
RemotePort = 0
现在需要增加一个配置项变成下面这样:
【Connection_1】
Type = 1 ## 1: Server | 2: Client
LocalIP = 10.137.20.151
LocalPort = 9827
RemoteIP = 10.137.20.77
RemotePort = 0
Encryption = 1 ## Is there need Encryption
由于新加了配置项,一般情况下,配置文件解析代码必定需要增加对Encryption配置项的解析。
频繁的配置文件格式改动,总是需要修改解析代码,很烦人。请教各位高人,
有没有办法从设计层面解决这个问题,即将配置抽象成功几个固定不变的结构,或者什么方式,保证解析代码的稳定性?
------解决方案--------------------
解释程序必须考虑所有可能的情况。
------解决方案--------------------
换java、C#吧,有反射机制就搞定了
------解决方案--------------------
我觉得必须得修改c++代码,这是避免不了的,或者你可以用c++代码调用脚本语言解释器,用脚本来作配置文件。
如果c++代码能够考虑到配置文件可能出现的所有情形的话,就相当于你创造了一种新的脚本解释器,你的配置文件就是新的脚本语言代码
RT。
比如原来有类似下面格式的配置文件
【Connection_1】
Type = 1 ## 1: Server | 2: Client
LocalIP = 10.137.20.151
LocalPort = 9827
RemoteIP = 10.137.20.77
RemotePort = 0
现在需要增加一个配置项变成下面这样:
【Connection_1】
Type = 1 ## 1: Server | 2: Client
LocalIP = 10.137.20.151
LocalPort = 9827
RemoteIP = 10.137.20.77
RemotePort = 0
Encryption = 1 ## Is there need Encryption
由于新加了配置项,一般情况下,配置文件解析代码必定需要增加对Encryption配置项的解析。
频繁的配置文件格式改动,总是需要修改解析代码,很烦人。请教各位高人,
有没有办法从设计层面解决这个问题,即将配置抽象成功几个固定不变的结构,或者什么方式,保证解析代码的稳定性?
------解决方案--------------------
解释程序必须考虑所有可能的情况。
------解决方案--------------------
换java、C#吧,有反射机制就搞定了
------解决方案--------------------
我觉得必须得修改c++代码,这是避免不了的,或者你可以用c++代码调用脚本语言解释器,用脚本来作配置文件。
如果c++代码能够考虑到配置文件可能出现的所有情形的话,就相当于你创造了一种新的脚本解释器,你的配置文件就是新的脚本语言代码