【问题标题】:Syncing two separate structures to the same master data将两个单独的结构同步到相同的主数据
【发布时间】:2010-04-12 13:14:36
【问题描述】:

我的应用程序中有多个结构要维护。所有链接到相同的记录,其中之一可以被认为是“主”,因为它反映了磁盘上文件中保存的实际关系。其他结构用于“调用”采购和工作订单的主要设计元素。我正在努力想出一种适当处理主数据更改的模式。

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

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


A
|_
   B
   E
C
|_
  D

A
|_
  B
  C
  D
  E

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

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

【问题讨论】:

    标签: data-structures tree c#-2.0


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 您好 Prachi,我正在寻找有关如何处理结构同步的建议,而不是在基础结构本身上 - 我被限制为所有涉及的数据使用树结构。不过,感谢您的回答。
    • 一个事件总线可能很有用,其中每个主副本都可以注册为发布者。更新副本时,它会让总线控制器知道更新。总线控制器可以向主节点和其他副本发送有关更新的事件。
    猜你喜欢
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多