问题描述
有一组继承自 Configurable 类的对象,以及一棵配置/子配置树。
- 从概念上讲,每个 Configuration 对象都代表所有 Configurable 的状态,并且配置继承(并且可以覆盖)其父项的设置。
- 在任何给定时间,其中一个配置是“活动的”(当您读/写可配置文件时,您正在使用该配置;如果配置不包含所需参数的值,则查询其父级,递归)。
- 您可以在运行时快速更改“活动”配置。 (在我的应用程序中,可配置项将是处理实时 MIDI 数据的对象。MIDI 是一种相对较慢的实时流协议。)
可能性:
A:在每个配置中存储可配置项的状态。每个配置都有一个带有键的映射:(propertyName,ownerObject) 存储该属性的值。每次访问或更改 Configurable 的属性时,Configurable 的 getter/setter 都会查询活动配置(包括带有 getter 的父配置,如有必要)以检索/设置其状态。
B:将每个 Configurable 的状态完全存储在该对象中,作为带有键的映射:(propertyName,configuration)。每次使用常规 getter/setter 成员函数访问/更改可配置的属性时,可配置的查询此内部映射以检索/设置其状态(使用活动配置)。如果需要,可以通过查询每个 Configurable 来生成有关每个 Configuration 的信息。
C:其他方式?
需要考虑的事项:保存/恢复配置、删除可配置和配置。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)