国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

使用VBScript 中的類組織開發

2020-06-26 18:06:27
字體:
來源:轉載
供稿:網友
當在一個機構內部創建Web應用程序時,有時候你會發現你自己從一個應用程序中復制和粘貼相同的代碼到其它的應用程序中。如果你能夠固化所有這些過程到一個好用的小包(package)中,其后你就可以在整個域中使用它了,這樣會方便很多。 

  

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

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

下面是實現方法: 

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對象,進行數據庫調用和之后的清理。而且,如果你使用的是 Microsoft Visual InterDev,那么類中定義的屬性和方法可以通過智能感知(IntelliSense)使用。 

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

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

Class MyClass 

Private Sub Class_Initialize() 
End Sub 

Private Sub Class_Terminate() 
End Sub 

End Class  

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

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

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

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

如果你奇怪為什么我不提供一個COM對象來處理這個功能,那是因為它會把你鎖定到細節設計中。通過在 ASP 中動態地創建類,你可以不用重新編譯和發布就能夠對類做出更改。在類固定之后,再將它移值到 COM、Windows 腳本組件(WSC)或者一個 Web 服務中,但是在開發階段還是靈活一些好。 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 靖远县| 临泉县| 清涧县| 南漳县| 夏河县| 五莲县| 恭城| 监利县| 福建省| 闻喜县| 大冶市| 连云港市| 康乐县| 昌吉市| 泽库县| 会泽县| 宁远县| 乌鲁木齐县| 固原市| 巴青县| 邓州市| 衡山县| 金坛市| 石屏县| 黑水县| 桐庐县| 宁化县| 正宁县| 额济纳旗| 林西县| 武城县| 于都县| 黄山市| 虎林市| 富源县| 吉林省| 辉县市| 大洼县| 农安县| 自治县| 渑池县|