牙牙窩

          BlogJava 聯系 聚合 管理
            8 Posts :: 21 Stories :: 10 Comments :: 0 Trackbacks

          ??????? 項目好忙,好久沒有上過這里了,今天過來一看,居然完全沒有人氣,哈 ... (看來我得努力了)最近看了 Nicholas C. Zakas 的一篇文章,覺得現在既然在做 JavaScript ,不妨模仿 Mr.? Nicholas 那樣,用 Javascript 實現一些設計模式。遲點也許也把 Javascript 實現 Object 的各種特性(如:繼承、多態等)也放上來。

          ?

          1、???????????? Factory

          Factory 是我們最常用的模式之一。它主要為我們提供一個獲取類實例的一個接口,把聲明類的過程封裝在了 Factory 中。舉一個 Javascript 最常見的例子:

          ?

          if (typeof XMLHttpRequest != "undefined") {
          ????return new XMLHttpRequest();
          } else if (typeof window.ActiveXObject != "undefined") {
          ????return new ActiveXObject("MSXML2.XMLHttp");
          }

          ?

          ??? 這個代碼主要是獲得一個XMLHttp的實例,在代碼中,很多時候都會用到。如果每次都寫一個,會變得很麻煩,采用Factory模式的方法。代碼如下:

          ?

          function XMLHttpFactory() {
          }

          XMLHttpFactory.createXMLHttp = function () {
          ????if (typeof XMLHttpRequest != "undefined") {
          ????????return new XMLHttpRequest();
          ????} else if (typeof window.ActiveXObject != "undefined") {
          ????????return new ActiveXObject("MSXML2.XMLHttp");
          ????}
          }

          在使用時可以直接調用而免去了很多冗余的代碼,而且代碼也非常直觀。

          var oXMLHttp = XMLHttpFactory.createXMLHttp();

          ?

          ?

          2 Singleton

          Singleton( 單態 ) 的作用是保持在界面中保持只有一個實例供調用。這樣可以保持系統對某一個實例使用進行控制。

          function MyClass() {
          }

          MyClass.instance = null; ?//define the static property

          MyClass.getInstance = function () {
          ????if (this.instance == null) {

          // 建立自己的實例,并保存
          ????????this.instance = new MyClass();
          ????}

          ????return this.instance;
          }

          ?

          在希望獲得改實例的引用時,執行以下代碼:

          var oMyObject = MyClass.getInstance();

          ?

          (未完待續 …..^_^

          ?

          ?

          posted on 2006-04-24 20:43 大牙 閱讀(668) 評論(0)  編輯  收藏 所屬分類: JavaScript探索
          主站蜘蛛池模板: 吉首市| 科尔| 金寨县| 晋宁县| 郓城县| 鸡泽县| 揭西县| 额敏县| 巨鹿县| 沂南县| 东源县| 冕宁县| 开江县| 庄河市| 永吉县| 辽阳市| 探索| 临城县| 呼图壁县| 革吉县| 临沧市| 彭泽县| 夏河县| 壤塘县| 鄱阳县| 饶阳县| 会宁县| 尼木县| 新泰市| 商洛市| 内乡县| 合肥市| 南澳县| 娱乐| 会同县| 卢龙县| 瑞安市| 潜江市| 临潭县| 霍林郭勒市| 长泰县|