佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 使用VBScript 中的類組織開發(fā)

使用VBScript 中的類組織開發(fā)

熱門標簽:美圖手機 智能手機 網(wǎng)站文章發(fā)布 銀行業(yè)務 鐵路電話系統(tǒng) 呼叫中心市場需求 服務器配置 檢查注冊表項
當在一個機構內(nèi)部創(chuàng)建Web應用程序時,有時候你會發(fā)現(xiàn)你自己從一個應用程序中復制和粘貼相同的代碼到其它的應用程序中。如果你能夠固化所有這些過程到一個好用的小包(package)中,其后你就可以在整個域中使用它了,這樣會方便很多。

 

同時,如果你有一個重復使用的過程,創(chuàng)建一個類包含你的過程可能會比較有用。使用類組織你的代碼有一些優(yōu)點:它使得你的代碼容易閱讀和調(diào)試;你可以將你的類輕松的移值到一個Web服務中;你為其它開發(fā)人員提供一個抽象工具(從而節(jié)省了時間和資金);同時在一個項目的開發(fā)階段你還保留了靈活性。

當把你的通用過程組織到一個類的時候,你創(chuàng)建一級抽象,允許你在幾乎所有代碼中實現(xiàn)這些過程。例如,假設在你創(chuàng)建的每個Web應用程序中,你者需要初始化用戶信息。這個初始化過程包括在用戶登錄到你的應用程序時根據(jù)用戶憑證所做的一些數(shù)據(jù)庫服務器連接。如果你在每個應用程序中都需要完成這個任務的話,那么將你的代碼固化到一個類中相當有意義。

下面是實現(xiàn)方法:

Dim MyToolbox
Set MyToolbox = New CToolbox
Response.Write "UserName: "  MyToolbox.UserName  "BR>"  vbCrLf
Response.Write "UserPhone: "   MyToolbox.UserPhone  "BR>"  vbCrLf
Set MyToolbox = Nothing

Class CToolbox
Private m_conn, m_rs
Private m_username, m_userphone

Public Property Get UserName()
    UserName = m_username
End Property

Public Property Get UserPhone()
    UserPhone = m_userphone
End Property

Private Sub Class_Initialize()
    Set m_conn = Server.CreateObject("ADODB.Connection")
    m_conn.ConnectionString = "Some connection string"
    m_conn.Open
    Set m_rs = Server.CreateObject("ADODB.Recordset")
    Set m_rs.ActiveConnection = m_conn
    m_rs.Open "Select * FROM Users Where userid = '" 
                        Request.ServerVariables("LOGON_USER")  "'"
    If Not m_rs.EOF Then
        m_username = m_rs.Fields("username")
        m_userphone = m_rs.Fields("userphone")
    End If
End Sub

Private Sub Class_Terminate()
    On Error Resume Next
    m_rs.Close
    Set m_rs = Nothing
    m_conn.Close
    Set m_conn = Nothing
End Sub

End Class 

從例子中你可以看到,UserName 和 UserPhone 屬性在類初始化之后就會有值。你可以將這個類的代碼放到 ASP 代碼的最后。然后在其余的代碼中其功能就可以在使用,不用實例化ADO對象,進行數(shù)據(jù)庫調(diào)用和之后的清理。而且,如果你使用的是 Microsoft Visual InterDev,那么類中定義的屬性和方法可以通過智能感知(IntelliSense)使用。

智能感知只對一級屬性和方法有效,所以如果你創(chuàng)建一個類返回其它 ASP 類的對象,那么 InterDev 就不會提供可用的方法和屬性。

下面的代碼是一個類的骨架:

Class MyClass

Private Sub Class_Initialize()
End Sub

Private Sub Class_Terminate()
End Sub

End Class 

使用這個基本信息,一個類被聲明,并且可以使用它來創(chuàng)建對象。但是這個類的對象沒有功能——它們是無用的東西。類的方法從 Public Sub 或者 Public Function 聲明構建(Subs 沒有返回值,而 Function 有返回值)。

有兩個方法可以暴露屬性:既可以在類的全局上下文中使用 Public VarName,也可以使用 Public Property Get/Set/Let。如果你需要一個只讀屬性,那么只要簡單地使用一個 Property Get 聲明即可。所有其它聲明為 Private 的 Properties,Subs 或者 Functions 只有在實例化的對象才可用。在類的全局上下文中聲明為 Private 的變量是成員變量。

創(chuàng)建類的另外一個好處是你可以輕易的將這個類聲明移值到 Web 服務中。因為這是很多開發(fā)人員前進的方向,你可以通過使用類創(chuàng)建面向?qū)ο蟮拇a先行一步。當你移值這些類聲明到一個 Web 服務時,你不需要重寫所有的放置了那段代碼的ASP代碼。所要做的唯一的改變就是你的對象的實例化。

我發(fā)現(xiàn)創(chuàng)建這個抽象的最大的優(yōu)點是可以使用其它 Web 開發(fā)者的幫助。因為對于很多開發(fā)人員來說在每個不同的實現(xiàn)中重復創(chuàng)建相同的代碼效率相當?shù)?,所以這個方法為每個開發(fā)人員提供了一個抽象工具。這就允許每個開發(fā)人員將精力更多地集中在當前工作的功能上面,而不是花費時間重寫他們已經(jīng)開發(fā)過的代碼上面。

如果你奇怪為什么我不提供一個COM對象來處理這個功能,那是因為它會把你鎖定到細節(jié)設計中。通過在 ASP 中動態(tài)地創(chuàng)建類,你可以不用重新編譯和發(fā)布就能夠?qū)︻愖龀龈?。在類固定之后,再將它移值?nbsp;COM、Windows 腳本組件(WSC)或者一個 Web 服務中,但是在開發(fā)階段還是靈活一些好。

標簽:沈陽 長治 新疆 紅河 樂山 滄州 河南 上海

巨人網(wǎng)絡通訊聲明:本文標題《使用VBScript 中的類組織開發(fā)》,本文關鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    聂荣县| 孙吴县| 临安市| 东安县| 区。| 育儿| 原平市| 黑龙江省| 邓州市| 吴堡县| 景宁| 安福县| 永嘉县| 云梦县| 陆河县| 龙岩市| 海淀区| 曲松县| 塔河县| 宁夏| 秦安县| 玉环县| 呼玛县| 永清县| 岳阳市| 合川市| 凤山市| 吉首市| 沧州市| 叙永县| 元氏县| 峨山| 南部县| 措美县| 彰武县| 婺源县| 洛浦县| 邹城市| 江都市| 佛坪县| 濮阳市|