posts - 176, comments - 240, trackbacks - 0, articles - 7

          [導入]TreeNode:長程關聯

          Posted on 2005-11-19 10:59 canonical 閱讀(353) 評論(0)  編輯  收藏 所屬分類: Witrix開發平臺

          java中最常用的數據結構類型是Map和List, 它們也是Container的兩種基本模式,一個是根據特征值定位,一個是根據地址定位。 它們共同的一個特征是表達了數據之間的直接的,短程的一種相關性。另一種常見的數據結構Tree則表達了數據之間的一種長程的關聯:根節點與其所有層次上 的子節點之間都存在著關聯。 文件系統,組織機構, XML文檔等都可以對應為Tree數據結構。在描述樹形結構的時候,我們經常使用XML文件, 但是XML文件在程序中操縱起來并不方便,這其中的一個重要原因是XML是面向文檔的,即操縱XML的API返回的和使用的都只能是文本字符串,而不能直 接使用程序中常見的其他數據結構。在witrix平臺中操縱Tree結構的標準接口是TreeNode類,它的設計是面向應用的,即節點的屬性值為 Object類型而不是String類型。

          Tree由三部分組成: 屬性,值, 子節點

          class TreeNode implements IVariant{
           List getChildren();

           int getChildCount();
           TreeNode child(int index);

           /** 當name對應的節點不存在時將會自動創建該節點 */
           TreeNode child(String name);

              /** 當name對應的節點不存在時返回null */
           TreeNode existingChild(String name);

           Map getAttributes();
           IVariant attribute(String name);
           void setAttribute(String name, Object attrValue);
          }

          TreeNode.attribute(name)返回的是IVariant接口,例如
          boolean defaultValue = true;
          boolean b = node.child("subA").attribute("attrB").booleanValue(defaultValue);

          TreeNode本身也是IVariant接口的一個實現,例如
          int i = ode.intValue();

          通過使用IVariant接口,我們實現了強類型的java語言與弱類型的xml文本之間的自然轉換,在轉換過程中還可以指定缺省值,這些都極大的簡化了實際應用時的編碼量。
          主站蜘蛛池模板: 龙南县| 庆城县| 千阳县| 台山市| 沭阳县| 安平县| 呼伦贝尔市| 美姑县| 翼城县| 浮山县| 商丘市| 鲁甸县| 贺兰县| 梅州市| 资中县| 麟游县| 靖州| 集安市| 石狮市| 微山县| 五指山市| 玛多县| 车险| 墨脱县| 四会市| 湛江市| 会昌县| 长汀县| 西盟| 麻城市| 昌黎县| 理塘县| 双鸭山市| 丰镇市| 泸州市| 通道| 剑阁县| 定州市| 上虞市| 和静县| 张家口市|