我正在做一个项目,其中每个类通常包含另一个类的实例列表。这在多个层上重复,因此 Class1 将包含 Class2 的实例列表,该列表又将包含 Class3 的实例列表,依此类推。
我想让每个类尽可能独立和独立,以便它们可以在不同的项目中再次重用。
然而,在这种架构中,经常发生来自上层的类不仅需要访问来自下层的对象,还需要存储它们的元数据,这些元数据对关联的对象是不可见的。这不仅发生在相邻的层上,也发生在彼此远离的层上。我想知道可能的正确方法是什么,因为我担心我现在使用的方法不是最好的方法。
我想到的解决方案是:
- 对于每个类,创建一个存储成瘾所需信息的包装器。这可能是矫枉过正(我们可能只需要存储一些位),我不确定如何将这个概念应用于遥远的层。
- 创建一个单独的结构来保存元数据,并保留成对的对象实例和元数据结构实例。同样,不确定如何将其与远层一起使用。
- 在较低级别中创建公共成员,他们无法看到/使用并且仅由较高级别的类使用。这解决了问题,但我认为这是非常糟糕的做法,并且严重依赖外部代码来变得很好,而不是“触摸”元数据。
其他可能的解决方案是什么?
作为一个令人上瘾的信息,我正在用 C++ 编写我的项目,但这不应该与我的问题真正相关。
编辑:这是一个更好地解释我的意思的例子:
假设我们有 A 类和 B 类,它们是完整的独立类。然后我们有 C 类,它是 A 类实例集合的管理器。为此,它需要存储有关它正在管理的每个 A 实例的成瘾信息。
此外,我们有 D 类,它包含 C 类的一个实例和 B 类对象的集合。最后一个类需要能够将 B 类的每个实例与 A 类的一个实例关联起来(这些实例是托管的)通过其 C 类的受控实例),反之亦然。
在此示例中,C 和 D 所需的信息将存储在何处以及如何存储?