相關(guān)資訊
- 《戰(zhàn)國(guó)無(wú)雙4-2》怎么換服裝?戰(zhàn)國(guó)無(wú)
- 關(guān)于責(zé)任的名言警句大全
- 《戰(zhàn)國(guó)無(wú)雙4-2》PC版如何聯(lián)機(jī)? 戰(zhàn)
- 戰(zhàn)國(guó)無(wú)雙4-2技能覺(jué)醒牛逼嗎 全新
- 《戰(zhàn)國(guó)無(wú)雙4-2》手柄無(wú)效怎么解決
- 戰(zhàn)國(guó)無(wú)雙4-2如何設(shè)置語(yǔ)言 戰(zhàn)國(guó)無(wú)雙
- 戰(zhàn)國(guó)無(wú)雙4-2怎么樣跳過(guò)進(jìn)入開(kāi)場(chǎng)動(dòng)畫
- 什么是應(yīng)屆生畢業(yè)生
- 應(yīng)屆生簡(jiǎn)歷自我評(píng)價(jià)
- 應(yīng)屆生簡(jiǎn)歷怎么寫
本類常用軟件
-
福建農(nóng)村信用社手機(jī)銀行客戶端下載下載量:584204
-
Windows優(yōu)化大師下載量:416896
-
90美女秀(視頻聊天軟件)下載量:366961
-
廣西農(nóng)村信用社手機(jī)銀行客戶端下載下載量:365699
-
快播手機(jī)版下載量:325855
這篇文章一起跟大家學(xué)習(xí)分享的是關(guān)于ASP模擬類的事件設(shè)計(jì)(兩種模擬事件的方式介紹),希望使大家有所收獲。
作者的blog: http://blog.csdn.net/oyiboy/
我之所以還是要宣揚(yáng)用MVC來(lái)開(kāi)發(fā)ASP,只是想讓面向過(guò)程的思考方式變成面向?qū)ο蟮乃伎挤绞,這個(gè)對(duì)于任何一種語(yǔ)言的開(kāi)發(fā)員來(lái)說(shuō)都是有好處的。
MVC是個(gè)標(biāo)準(zhǔn)模型,ASP要實(shí)現(xiàn)似乎真的是很困難,但是標(biāo)準(zhǔn)是標(biāo)準(zhǔn),運(yùn)用是運(yùn)用,既然ASP要實(shí)現(xiàn)這個(gè)模型很難,那可以嘗試著將MVC模型變形成適合自己的模型。
“不管白貓黑貓能逮到耗子的就是好貓。”而對(duì)于我們開(kāi)發(fā)者來(lái)說(shuō),不管是什么模型,能正確的指引我們的思路,完美完成項(xiàng)目的模型就是好模型。畢竟用戶最終用是我們的程序而不是我們的模型。
這段時(shí)間由于接觸到MVC,也知道了Class的運(yùn)用方式,遭遇到了事件的設(shè)計(jì)。
其實(shí)具體的事件設(shè)計(jì)方式我也不是很明白,在QQ里newskyline跟我說(shuō)了,ASP沒(méi)辦法作Class的事件,
只能模擬。而我呢。算是為達(dá)目的不則手段(寫程序而以)的,認(rèn)為模擬也好,非模擬也行,只要達(dá)到我想要的效果就是好東西。
模擬事件的方式有兩種:
第一種:借用了execute/eval,用一個(gè)屬性收取函數(shù)名的字符,然后使用execute/eval來(lái)運(yùn)行函數(shù)。
如:
obj.OnDataUpdateStart="CheckData"
其構(gòu)造為:
public property let OnDataUpdateStart(byval A_strValue)
'在此省略了對(duì)A_strValue的一些嚴(yán)謹(jǐn)?shù)尿?yàn)證代碼。
p_strOnDataUpdateStart=A_strValue
end property
事件是觸發(fā)為:
public sub DataUpdate()
'...忽略過(guò)程...
execute(p_strOnDataUpdateStart & "(參數(shù)變量一,參數(shù)變量二)")
'...忽略過(guò)程...
end sub
稍微提一下execute和eval的不同點(diǎn)。
同樣的“x=y”。execute("x=y")的結(jié)果是將y值賦給x,而eval("x=y")則會(huì)返回一個(gè)Boolean值,表示x與y的測(cè)試結(jié)果,如x等于y則返回true,反之返回false。
第二種:借用函數(shù)指針GetRef,在vbs手冊(cè)的解釋上來(lái)看就是綁定事件專用的函數(shù)。具體解釋如下:
“返回一個(gè)指向一過(guò)程的引用,此過(guò)程可綁定某事件。”
具體運(yùn)用例子,如:
obj.OnDataUpdateStart="CheckData"
其構(gòu)造則改為:
public OnDataUpdateStart '其實(shí)可以使用get/let模式,想偷懶了,所以直接聲明一個(gè)公開(kāi)變量來(lái)傳遞了。
事件觸發(fā)則改為:
public sub DataUpdate()
'...忽略過(guò)程...
set me.OnDataUpdateStart=GetRef(OnDataUpdateStart)
me.OnDataUpdateStart("參數(shù)變量一","參數(shù)變量二")
'...忽略過(guò)程...
end sub
以上兩種方式可以實(shí)現(xiàn)事件綁定,但是,從解釋上來(lái)說(shuō),我比較推崇第二種,相對(duì)于execute/eval來(lái)說(shuō)更為嚴(yán)謹(jǐn)一些。