2010-04-06 54 views
1

我有多個結構要維護在我的應用程序中。所有鏈接到相同的記錄,其中一個可以被認爲是「主」,因爲它反映了磁盤上文件中的實際關係。其他結構用於「購買」工單的主要設計元素。我努力想出一個適當處理主數據變化的模式。將兩個單獨的結構同步到相同的主數據中

作爲一個例子,下面的樹木可能指的是相同的數據:

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


A 
|_ 
    B 
    E 
C 
|_ 
    D 

A 
|_ 
    B 
    C 
    D 
    E 

這些二級結構遵循內部規則,但它們的整體結構通常是由用戶確定的。在所有情況下(包括主人),任何元素都可以在多個位置和多棵樹中使用。當我向樹中的任何元素添加一個子元素時,我想要爲每個「主元素」元素自動構建二級結構,或者至少向用戶發佈情況並允許他們手動生成所需的數據次生樹木。

有沒有可能適用於這種情況的任何模式?我一直視它爲視圖問題,但事實證明,當您查看最初一代數據時,情況會更加複雜。

回答

0

樹實現應該是一個很好的起點。主副本將是完整的樹。

副本中的節點可以是包含數據的複合對象以及對主樹中相應節點的引用。

當添加子節點或在其中一個副本的節點上發生任何其他修改時,節點可以通過引用主樹中的相應節點以及更改的詳細信息,將消息發送到主樹。

然後,主人會自行修改並更新其他副本。

事件處理可能會變得棘手,因爲您必須確保不使整個過程循環。

+0

嗨Prachi,我正在尋找建議如何處理結構的同步,而不是在基礎結構本身 - 我被限制使用樹結構的所有數據涉及。不過謝謝你的回答。 – 2010-04-13 04:28:31

+0

一個事件總線可能是有用的,其中每個副本的主人可以註冊爲發佈者。當副本更新時,它讓總線控制器知道更新。總線控制器可以向主設備發送事件以及關於更新的其他副本。 – Prachi 2010-04-13 23:41:39

相關問題