将两个单独的结构同步到相同的主数据

时间:2010-04-06 17:46:52

标签: data-structures tree c#-2.0

我的应用程序中有多个结构要维护。所有链接都指向相同的记录,其中一个可以被视为“主”,因为它反映了磁盘上文件中的实际关系。其他结构用于“调出”主要设计的元素以用于购买和工作订单。我正在努力想出一个能够适当处理主数据变化的模式。

例如,以下树可能引用相同的数据:

A
|_
  B
  |_ 
    C
    |_
      D
|_
   E
   |_
     B
     |_
       C
       |_
         D


A
|_
   B
   E
C
|_
  D

A
|_
  B
  C
  D
  E

这些二级结构遵循内部规则,但它们的整体结构通常由用户决定。在所有情况下(包括主),任何元素都可以在多个位置和多个树中使用。当我将子项添加到树中的任何元素时,我想要为“master”元素的每个实例自动构建二级结构,或者至少将该情况通告给用户并允许他们手动生成所需的数据。次要树木。

是否有任何可能适用于这种情况的模式?我一直将它视为一个视图问题,但事实证明,当你查看数据的初始生成时,它会更加复杂。

1 个答案:

答案 0 :(得分:0)

树实现应该是一个很好的起点。主副本将是完整的树。

副本中的节点可以是包含数据的复合对象,也可以是对主树中相应节点的引用。

当在其中一个副本中的节点上添加子节点或进行任何其他修改时,该节点可以向主树发送消息,其中包含主树中相应节点的引用以及更改的详细信息。 / p>

然后,主人会修改自己并更新其他副本。

事件处理可能会变得棘手,因为您必须确保不会使整个过程循环。