乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       Ansion 2006-04-16

      當在一個機構內部創(chuàng)建Web應用程序時,有些時候你會發(fā)現(xiàn)你自己從一個應用程序中復制和粘貼相同的代碼到其它的應用程序中。如果你能夠固化所有這些過程到一個好用的小包(package)中,其后你就可以在整個域中使用它了,這樣會方便很多。

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

      當把你的通用過程組織到一個類的時候,你創(chuàng)建一級抽象,允許你在幾乎所有代碼中實現(xiàn)這些過程。例如,假設在你創(chuàng)建的每個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使用。

      >

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

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

      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)建類的另外一個優(yōu)點是你可以輕易的將這個類聲明移值到Web服務中。因為這是很多開發(fā)人員前進的方向,你可以通過使用類創(chuàng)建面向對象的代碼先行一步。當你移值這些類聲明到一個Web服務時,你不需要重寫所有的放置了那段代碼的ASP代碼。所要做的唯一的改變就是你的對象的實例化。

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

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

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多