姑且称这种配置方式叫做Hook。
通常,我们会使用xml,properties,或者Annotation来配置我们的应用。但是,这三者,都有很严重的缺陷。
xml,过于严格,一般要详细的指定每一个配置细节,文字繁琐,与对象之间的映射关系维护成本高。
properties,缺乏结构化,过于简单,国际化支持差,需要转码或使用特殊的IDE才可以输入中文信息。
annotation,与对象的映射关系几乎没有维护成本,但编译期绑定,无法在发布后修改配置。
因此我构思了一种全新的配置方式,Hook配置。
1. 配置信息从被配置对象所对应的Hook代码中加载。如MyClass的配置对应于MyClassHook,可以实现诸如条件配置的功能。
2. 未找到MyClassHook,即使有DefaultHook,减少配置量
3. 如果有必要,可以在运行时向Hook中注入信息,修改配置
4. 使用脚本语言用作Hook代码的编写,可以实现在发布后修改配置
5. XML,Annotation,can hooked
通常,我们会使用xml,properties,或者Annotation来配置我们的应用。但是,这三者,都有很严重的缺陷。
xml,过于严格,一般要详细的指定每一个配置细节,文字繁琐,与对象之间的映射关系维护成本高。
properties,缺乏结构化,过于简单,国际化支持差,需要转码或使用特殊的IDE才可以输入中文信息。
annotation,与对象的映射关系几乎没有维护成本,但编译期绑定,无法在发布后修改配置。
因此我构思了一种全新的配置方式,Hook配置。
1. 配置信息从被配置对象所对应的Hook代码中加载。如MyClass的配置对应于MyClassHook,可以实现诸如条件配置的功能。
2. 未找到MyClassHook,即使有DefaultHook,减少配置量
3. 如果有必要,可以在运行时向Hook中注入信息,修改配置
4. 使用脚本语言用作Hook代码的编写,可以实现在发布后修改配置
5. XML,Annotation,can hooked