请教设计处理程序配置文件的思想
程序大致思路是这样的: 程序需要初始化时读取ini文件中的一些key-value,比如 frameX=100,frameY=200,ip=192.168.0.1, apptitle=helloworld 这样的。然后可以通过一个界面把改动的参数写回去。
现在,如何读取和保持ini文件我已经能够实现了,但是我为设计读取配置文件的程序结构犯了迷糊。
我的想法是,程序初始化的时候,先初始化一些变量,这些变量比如ip,初始化一些比较“安全”的内容,尽管不是真正有效的内容(比如实际上程序所在机器ip是192.168.0.2,但是初始化为192.168.0.1),但是在一些数据处理时至少会比较安全,不会程序弹出个异常之类...然后程序读取app.ini里面的设置,再改变这些变量的值,然后程序再根据这些变量的值初始化程序的其他部分。(比如初始化frame的x,y) 如果app.ini文件找不到或者读的时候没读到参数,则这些变量用原初始化值。
现在问题就是,初始化的时候,这些变量用怎样的方式保存比较好? 是写到所有类的外面, 或者专门写到一个类里面? 用 static ? 用struct ? 我现在是,在所有类外面写了n个struct,例如
struct frameINI
{
int x;
int y;
wxString frameTitle;
};
struct setup_Server
{
wxString ip;
wxString id;
wxString password;
};
……
然后
struct setupDialogINI
{
frameINI myframe;
setup_Server myServer;
……
};
想通过 setupDialogINI.myframe.x 这样的法子来访问每个变量,以便分类和使用。
问题:
1. 初始化的时候,这些变量用怎样的方式保存比较好? 是写到所有类的外面, 或者专门写到一个类里面? 用 static ? 用struct ?
2. 我这样用很多个struct会不会有点笨,具体实现后会不会有什么隐患…… 有没有其他的比较好的设计思路,就是变量区分清楚些又能程序里容易访问的就好。