文不对题,有时间再来修改。先将要讲的配置模块的设计放上来。
实作实现的是配置模块。实现配置文件读取,配置项管理,以及国际化。
配置项的主要组成部分:配置项Key、配置项Value、配置项Value规则以及配置项Value变更通知。
代码实现细节,比如常量等细节本次不做处理。
代码整体达到简洁、易维护要求。耦合度非常低,扩展只需要非常少量的编码。
达到的效果:
- 新增配置项,只需要新增规则以及一条新增语句即可。
例如:configItemList.Add(new ConfigItem("Common", FieldConstant.FIELD_LANGUAGE,
"zh_cn", new NotNullOrEmptyConfigRule(), new I18nLanguageChangedNotify() ) );
- 如果新增一项语言的支持,只需要在I18N目录下新增一份语言文件即可,无需编码。