JAVA & XML & JAVASCRIPT & AJAX & CSS

          Web 2.0 技術儲備............

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            77 隨筆 :: 17 文章 :: 116 評論 :: 0 Trackbacks
          ?1?var?Node?=?function(?nodeValue?)
          ?2?{
          ?3?????var?value?=?nodeValue;
          ?4?????
          ?5?????var?deep??=?0;
          ?6?????
          ?7?????var?childs?=?new?Array();
          ?8?????
          ?9?????/**?取得深度?**/
          10?????this.getDeep?=?function()
          11?????{
          12?????????return?deep;
          13?????}
          14?????
          15?????/**?設置深度?**/
          16?????this.setDeep?=?function(?nodeDeep?)
          17?????{
          18?????????deep?=?nodeDeep;
          19?????}
          20?
          21?????/**?獲取值?**/
          22?????this.getValue?=?function()
          23?????{
          24?????????return?value;
          25?????}
          26?
          27?????/**?添加子節點?**/
          28?????this.appendChild?=?function?(?node?)
          29?????{
          30?????????node.setDeep(?deep?+?1?);
          31?????????childs.push(?node?);
          32?????????return?node;
          33?????}
          34?
          35?????/**?所有子節點?**/
          36?????this.childNodes?=?function()
          37?????{
          38?????????return?childs;
          39?????}
          40?????
          41?????/*是否包含子節點*/
          42?????this.hasChild?=?function()
          43?????{
          44?????????return?childs.length?>?0?;
          45?????}
          46?
          47?????/*遍歷*/
          48?????this.walk?=?function(?visitor?)
          49?????{
          50?????????visitor.visite(?this?);
          51?????}
          52?}
          53?
          54?/*?訪問者?*/????
          55?var?Visitor?=?function?()
          56?{
          57?????this.visiteResult?=?"";
          58?????
          59?????this.visite?=?function?(?node?)
          60?????{
          61?????????//window.alert(?"深度?=?"?+?node.getDeep()?+??"?????"?+?node.getValue()?);
          62?????????this.visiteResult?+=?"?深度?=&nbsp;&nbsp;&nbsp;&nbsp;"?+?node.getDeep()?+??"&nbsp;&nbsp;&nbsp;&nbsp;?Value&nbsp;=&nbsp;"?+?node.getValue()?+?"<br/>";
          63?????????if(?node.hasChild()?)
          64?????????{
          65?????????????this.visiteChildNodes(?node?);
          66?????????}
          67?????}
          68?????
          69?????this.visiteChildNodes?=?function(?node?)
          70?????{
          71?????????var?nodes?=?node.childNodes();
          72?????????for(?var?i?=?0?;?i?<?nodes.length?;?i++?)
          73?????????{
          74?????????????this.visite(?nodes[i]?);
          75?????????}
          76?????}
          77?}

          代碼測試 :

          ?1?<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          ?2?<html?xmlns="http://www.w3.org/1999/xhtml">
          ?3?<head>
          ?4?<meta?http-equiv="Content-Type"?content="text/html;?charset=gb2312"?/>
          ?5?<title></title>
          ?6?<script?language="javascript">
          ?7?/*?遍歷?*/
          ?8?function?doWalk(?startNode?)
          ?9?{
          10?????var?visitor?=?new?Visitor();
          11?????startNode.walk(?visitor?);
          12?????document.getElementById("VisiteResult").innerHTML?=?visitor.visiteResult;
          13?}
          14?
          15?/*初始化一些數據*/????
          16?var?root?=?new?Node("大爺root?");
          17?var?node2?=?root.appendChild(?new?Node("大爺2號")?);
          18?????????????root.appendChild(?new?Node("大爺3號")?);
          19?????????????root.appendChild(?new?Node("大爺9號")?);
          20?var?node4?=?node2.appendChild(?new?Node("大爺4號")??);
          21?var?node5?=?node2.appendChild(?new?Node("大爺5號")??);
          22?????????????node2.appendChild(?new?Node("大爺6號")??);
          23?node4.appendChild(?new?Node("大爺7號")??);
          24?node5.appendChild(?new?Node("大爺8號")??);????
          25?</script>
          26?</head>
          27?
          28?<body>
          29?<table?width="60%"?align="center">
          30?????<tr>
          31?????????<th?height="30"?align="center"?valign="middle">左遞歸[深度優先遍歷]</th>
          32?????</tr>
          33?????<tr>
          34?????????<td?height="30"?align="left"?valign="middle">
          35?????????var?root?=?new?Node("大爺root?");<br?/>
          36?????????var?node2?=?root.appendChild(?new?Node("大爺2號")?);<br?/>
          37?????????????????????root.appendChild(?new?Node("大爺3號")?);<br?/>
          38?????????????????????root.appendChild(?new?Node("大爺9號")?);<br?/>
          39?????????var?node4?=?node2.appendChild(?new?Node("大爺4號")??);<br?/>
          40?????????var?node5?=?node2.appendChild(?new?Node("大爺5號")??);<br?/>
          41?????????????????????node2.appendChild(?new?Node("大爺6號")??);<br?/>
          42?????????node4.appendChild(?new?Node("大爺7號")??);<br?/>
          43?????????node5.appendChild(?new?Node("大爺8號")??);<br?/>
          44?????????</td>
          45?????</tr>
          46?????<tr>
          47?????????<td?height="50"?align="center"?valign="middle">
          48?????????<input?type="button"?value="?遍?歷?"??onclick="javascript:doWalk(?root?)"?/>
          49?????????</td>
          50?????</tr>
          51?????<tr>
          52?????????<td?id="VisiteResult"?height="100"?align="left"?valign="middle">
          53?????????</td>
          54?????</tr>
          55?</table>
          56?</body>
          57?</html>
          58?

          Javascript 弱類型的好處~~? 想怎么寫就怎么寫~ 好爽哇! 可以不顯示的實現 Visitor 和 Visitable 接口。


          代碼下載...........
          代碼下載...........
          代碼下載...........
          posted on 2006-10-25 22:47 Web 2.0 技術資源 閱讀(5575) 評論(3)  編輯  收藏 所屬分類: Javascript

          評論

          # re: Javascript 中的 Visitor 模式 → 實現樹型結構任意節點遍歷................ 2006-10-25 23:13 Web 2.0 技術資源
          沒實現 Visitor 和 Visitable 接口的 Visitor 模式.......

          哈哈........ 感覺已經變成簡單的策略模式了........

          實在不好意思......... 有點變味了.........   回復  更多評論
            

          # re: Javascript 中的 Visitor 模式 → 實現樹型結構任意節點遍歷................ 2006-10-26 15:10 搞挨踢的
          qq我恨你!  回復  更多評論
            

          # re: Javascript 中的 Visitor 模式 → 實現樹型結構任意節點遍歷................ 2007-10-30 21:07 創世紀計算機資源網
          樓主真強~  回復  更多評論
            

          主站蜘蛛池模板: 华容县| 明水县| 定襄县| 台江县| 鄢陵县| 康乐县| 彭水| 岳西县| 太湖县| 襄樊市| 光山县| 桦甸市| 视频| 博客| 武宣县| 那坡县| 平阳县| 额尔古纳市| 金平| 潜江市| 库尔勒市| 辰溪县| 张掖市| 福鼎市| 贵南县| 宁晋县| 临颍县| 汉中市| 五原县| 芜湖市| 嘉禾县| 曲松县| 甘肃省| 绥化市| 霞浦县| 青冈县| 崇信县| 治多县| 中方县| 古田县| 平山县|