實作結構檢視器

比較外掛程式為實作本身內容檢視器提供了豐富的支援:

差異器 

差異器 是階層化結構資料的差異引擎。它採用兩個或三個輸入,並對它們執行雙向或三向比較。

如果差異引擎的輸入元素實作 IStructureComparator 介面,則引擎會循環地將自己套用至輸入元素的子項。 葉節點元素必須實作 IStreamContentAccessor 介面,以便差異器可以對它們的內容執行位元組比較。

包含了一些有關差異器不錯的範例:

依預設,差異引擎會傳回比較的結果,作為 DiffNode 物件的樹狀結構。DiffNode 說明了二或三個輸入資料中的變更。結果節點的類型可藉由置換引擎的單一方法而變更。

差異檢視器

DiffNode 的樹狀結構 可顯示在 DiffTreeViewer 之中。 DiffTreeViewer 需要樹狀結構的內部節點實作 IDiffContainer 介面,以及葉節點實作 IDiffElement 介面。

比較階層化結構資料及顯示差異的典型步驟如下:

  1. 將輸入資料對映至實作 IStructureComparatorIStreamContentAccessor 介面之物件的樹狀結構。
  2. 利用 差異器執行比較作業,以及
  3. 將差異結果饋送至 DiffTreeViewer
StructureDiffViewer 是特殊化的 DiffTreeViewer, 可使上述的三個步驟自動進行。它採用類型 ICompareInput 的單一輸入物件, 並且從中擷取兩個或三個要比較的輸入元素。 它使用 IStructureCreator, 從它們之中擷取包含 IStructureComparatorIStreamContentAccessor 的樹狀結構。然後,這些樹狀結構會與差異引擎做比較,而且結果會顯示在樹狀結構檢視器中。

ZipFileStructureCreatorIStructureCreator 介面的實作,使得可用的 ZIP 保存檔的內容為 IStructureComparator 階層式結構,可使用差異引擎(差異器)輕鬆的作比較。 這是如何使得結構化檔案可供比較外掛程式的階層式比較功能使用的良好範例。

Copyright IBM Corp. and others 2000,2002.