使用面向对象设计对配置树进行建模

问题描述

建模以下内容的最佳 OOP 方法是什么?:

有一组继承自 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 (将#修改为@)