但是Class這個東西,如果用得比較少,充其量只是一個大模塊的包裝方式. 只有大規(guī)模地用它來開發(fā),才能顯出它對項目管理的優(yōu)越性來. 所謂的意大利面條式代碼,就會和asp劃上句號了.
我想目前大部分的asp程序員中都還沒有使用Class,對面向?qū)ο筮@種術語也不太熟悉,需要增加一章來描述一下asp中的類所扮演的角色,以及和面向?qū)ο缶幊痰年P系.
我會用盡量貼近編程實踐的方式來解釋Class的運用,但不會動用面向?qū)ο笾惖某橄笮g語,如果你有了面向?qū)ο蟮睦碚摶A,可以把這些內(nèi)容與其結(jié)合,或者會有你獨特的發(fā)現(xiàn). 如果沒有了解過面向?qū)ο?也不用一定要知道面向?qū)ο笫窃趺椿厥?只要通過閱讀本系列的文章,學會了Class的用法,并且在編程中依據(jù)了其中的法則,就可以足夠健壯地管理你的asp代碼了.
Class相當于一個包裝箱,它可以將變量和函數(shù)包裝起來,形成一個整體,本系列文章要講的所有內(nèi)容,可以說是包裝的學問.
例如,我們可以包裝一個數(shù)學處理的Class,并使用它:
復制代碼 代碼如下:
Class Con_Math
Public A
Public B
Private intC
Public Function Sum()
intC = cint(A) + cint(B)
Sum = intC
End Function
End Class
set math = new Con_Math
math.A = 19
math.B = 80
Response.write math.Sum
set math = nothing
逐行解釋語法:
1, 定義了一個包裝箱,名字叫 Con_Math ,大家都知道Math是數(shù)學的意思,Con_前綴是我的編程習慣,對于可能會在整個程序中使用的Class,冠一個Con_前綴,代表它是一個通用性的Class. 純屬編程習慣,但是加個前綴不光是一個習慣問題,等會在后面會做解釋.
2,3 放進去了2個變量,名字為A,B, 它們前面的Public代表它們是公共的變量,可以被外面的程序訪問到.
4 變量intC被定義為Private,表示它是包裝箱內(nèi)部的私有變量,不可以從外面看到它,也不可以強行扯出來,無論你有多大力氣都不行的.偷出來?你試試看.
6,7,8,9 這四行定義了一個進行加法運算的函數(shù),除了一個Public,其他的都是你天天用的東西,如果你不眼熟...... 還是別看這個系列了,先去做做基礎功課比較好. 同上面的兩個變量一樣,加一個Public表示包裝箱在這里開了一個洞,你可以從外面看到它,使用它.
10 End Class 打上封箱的膠帶,一個整整齊齊的Class就包裝完成了
只不過,這個包裝箱只是一個構思,不能當現(xiàn)成的用. 借用唐僧大師的話:(悟空他要吃我)只是一個構思,還沒有成為現(xiàn)實(他又何罪之有呢),不如等它實例化以后,再用也不遲啊(再定他的罪不遲啊).
實例化,就表示實際的吃肉行為.
我們可以在asp代碼中輕易地實例化我們的構思,可惜西天路上千千萬萬的妖怪都沒有辦法實例化他們的"吃唐僧肉"的Class,實在真是可憐憫者!
這是程序員的優(yōu)越性.
12 實例化了我們定義好的Class,實例化名是不能和構思名一模一樣的,不然在語法方面會亂套的.所以大家現(xiàn)在知道了,為什么會給Class加個前綴的習慣么? 當然,大家完全可以不用Con_做前綴,如下等等都是好材料:Yaomin_ Jimo_ Chunge_ ......或者用你老婆的閨名都可以的,人要活得有想象力一點.