最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

遭遇ASP類的事件設計

 更新時間:2006年08月27日 00:00:00   作者:  
作者的blog: http://blog.csdn.net/oyiboy/
我之所以還是要宣揚用MVC來開發(fā)ASP,只是想讓面向過程的思考方式變成面向對象的思考方式,這個對于任何一種語言的開發(fā)員來說都是有好處的。
MVC是個標準模型,ASP要實現(xiàn)似乎真的是很困難,但是標準是標準,運用是運用,既然ASP要實現(xiàn)這個模型很難,那可以嘗試著將MVC模型變形成適合自己的模型。
  “不管白貓黑貓能逮到耗子的就是好貓?!倍鴮τ谖覀冮_發(fā)者來說,不管是什么模型,能正確的指引我們的思路,完美完成項目的模型就是好模型。畢竟用戶最終用是我們的程序而不是我們的模型。
  這段時間由于接觸到MVC,也知道了Class的運用方式,遭遇到了事件的設計。
  其實具體的事件設計方式我也不是很明白,在QQ里newskyline跟我說了,ASP沒辦法作Class的事件,
只能模擬。而我呢。算是為達目的不則手段(寫程序而以)的,認為模擬也好,非模擬也行,只要達到我想要的效果就是好東西。
  模擬事件的方式有兩種:
  第一種:借用了execute/eval,用一個屬性收取函數(shù)名的字符,然后使用execute/eval來運行函數(shù)。
    如:
      obj.OnDataUpdateStart="CheckData"
     其構造為:
      public property let OnDataUpdateStart(byval A_strValue)
      ''在此省略了對A_strValue的一些嚴謹?shù)尿炞C代碼。
        p_strOnDataUpdateStart=A_strValue
      end property
    
     事件是觸發(fā)為:
      public sub DataUpdate()
        ''...忽略過程...
        execute(p_strOnDataUpdateStart & "(參數(shù)變量一,參數(shù)變量二)")
        ''...忽略過程...
      end sub
    稍微提一下execute和eval的不同點。
    同樣的“x=y”。execute("x=y")的結果是將y值賦給x,而eval("x=y")則會返回一個Boolean值,表示x與y的測試結果,如x等于y則返回true,反之返回false。
  第二種:借用函數(shù)指針GetRef,在vbs手冊的解釋上來看就是綁定事件專用的函數(shù)。具體解釋如下:
    “返回一個指向一過程的引用,此過程可綁定某事件?!?
    具體運用例子,如:
      obj.OnDataUpdateStart="CheckData"
      其構造則改為:
        public OnDataUpdateStart  ''其實可以使用get/let模式,想偷懶了,所以直接聲明一個公開變量來傳遞了。
      事件觸發(fā)則改為:
        public sub DataUpdate()
          ''...忽略過程...
          set me.OnDataUpdateStart=GetRef(OnDataUpdateStart)
          me.OnDataUpdateStart("參數(shù)變量一","參數(shù)變量二")
          ''...忽略過程...
        end sub
  以上兩種方式可以實現(xiàn)事件綁定,但是,從解釋上來說,我比較推崇第二種,相對于execute/eval來說更為嚴謹一些。 

相關文章

最新評論

万年县| 吴川市| 彩票| 西城区| 常宁市| 九龙县| 印江| 扬州市| 鄱阳县| 龙口市| 方城县| 许昌县| 中牟县| 宜州市| 蓝田县| 赤城县| 西乌| 达孜县| 德庆县| 建德市| 额济纳旗| 亳州市| 新邵县| 铜陵市| 罗定市| 信阳市| 磐安县| 富锦市| 长治县| 遂宁市| 东乡县| 桦南县| 百色市| 繁峙县| 衡阳市| 新乐市| 万宁市| 阿瓦提县| 广西| 津市市| 武功县|