trime
trime copied to clipboard
[Development Discuss] A more propriate way to obtain config data
主题描述 / Topic Descriptions
最近浏览了一些 Rime 官方的项目,想了解这些项目是如何利用 API 获取所需的配置的,思考出如何改进同文目前的配置数据获取机制。遂有此主题。
目前的问题 / Current Problems
说来话长 …… 同文目前获取配置(主要是主题),弊病很多,简要来说是通过 JNI 利用 API 获取到整份文件内容,存储为一个 Map 变量,然后再读取 Map 到各个分变量,为其他部件所用。 问题在于:
- 获取到值后,还需要根据实际情况转换类型;
- 编写代码时,还要不断查询键名,相当不便;
- 每个部件所使用的变量,都是互相独立的,他们应该是有机结合的整体;
- debug 困难;
- ……
心太累,列举不下去了 :rofl:
可能的解决方案 / Potential Solutions
我的理想是像 fcitx5-android 这样 ,用 class 定义住一整套主题体系。从配置文件获取数据,直接构建出 class 实例,用的时候直接调用实例的成员变量即可。