Was ich vorher geschrieben habe:
Jeder, der Programme schreibt, weiß, dass beim schrittweisen Entwickeln der Funktionen, die Sie implementieren möchten, das, was Sie am ersten Tag geschrieben haben, oft am nächsten Tag vergessen wird. Oftmals werden detaillierte Notizen zur Programmentwicklung bereitgestellt. Dies gilt insbesondere bei der ASP-Systementwicklung, wenn Dateien und Funktionen komplex sind. Wenn wir planen, einige Funktionen der Website zu ändern, haben wir das Gefühl, dass wir keine Ahnung haben, wo wir anfangen sollen oder was unserer Meinung nach geändert werden muss. Wenn Sie zu diesem Zeitpunkt eine objektorientierte Programmiersprache gelernt haben, werden Sie natürlich darüber nachdenken, wie Sie die Codefunktion in Module implementieren können. ASP ist von Natur aus keine objektorientierte Programmierung, aber VBSCRPIT6.0 bietet Klassen Realisieren Sie die Codekapselung und implementieren Sie die Modulsprache.
Zunächst möchte ich hier einige sehr offizielle Konzepte aufschreiben, die veranschaulichen sollen, dass es sich bei der Objektorientierung um ein sehr konkretes und substanzielles Modell handelt und sich manche Menschen nicht abschrecken lassen, wenn sie das Objekt sehen.
Ein Objekt ist etwas, das man sehen, fühlen, hören, berühren, schmecken oder riechen kann. Hier definieren wir es so: Ein Objekt ist eine in sich geschlossene Einheit, die durch eine Reihe identifizierbarer Eigenschaften und Verhaltensweisen identifiziert wird.
In der objektorientierten Programmierung (oop) werden die folgenden zwei Begriffe verwendet.
Klasse: Dies ist die Vorlage eines Objekts und definiert die Eigenschaften des Objekts.
Instanz: Dies ist ein reales Objekt, etwas, mit dem Sie interagieren können.
Eigenschaften, Methoden und Ereignisse
In OOP beschreiben die folgenden Begriffe die Eigenschaften von Objekten:
Attribut: Hierbei handelt es sich um eine Rangfolge, die die Attribute eines Objekts beschreibt.
Methode: Dies ist ein Verb, das beschreibt, was ein Objekt tun kann oder was von ihm erwartet wird.
Ereignis: beschreibt die Operation, die ein Objekt als Reaktion auf eine Aktion ausführt.
Objekte sind Teil der objektorientierten Programmierung und des objektorientierten Designs. Viele Leute denken, dass dies ein kompliziertes Thema ist, aber tatsächlich ist es sehr einfach und kann in vier einfachen Worten erklärt werden. Abstraktion, Kapselung, Polymorphismus und Vererbung.
Abstraktion: Dies ist eine Möglichkeit, die Komplexität und das Innenleben einer Klasse zu verbergen, sodass der Benutzer nicht einfach wissen muss, wie sie funktioniert. Wenn Sie fernsehen möchten, müssen Sie nicht wissen, wie der Fernseher funktioniert. Sie müssen lediglich den Fernseher einschalten und nach Kanälen suchen. Im String-Beispiel gibt es eine trim-Methode, die löschen kann Für das Leerzeichen am Ende der Zeichenfolge müssen Sie auch nicht wissen, wie diese Aufgabe ausgeführt wird. Sie müssen lediglich wissen, dass sie über diese Funktion verfügt.
Kapselung: Jedes Objekt enthält alle Informationen, die zum Ausführen von Operationen erforderlich sind. Dieses Objekt wird als Kapselung bezeichnet, sodass das Objekt nicht auf andere Objekte angewiesen ist, um seine Operationen abzuschließen. In der TOupper()-Methode muss die Zeichenfolge keine Informationen von anderen erhalten Alle Zeichen werden in Großbuchstaben umgewandelt.
Polymorphismus: Dieser Begriff wird verwendet, um anzuzeigen, dass verschiedene Objekte dieselbe Aktion ausführen können, jedoch über ihren eigenen Implementierungscode. Der Name ist derselbe, aber der zugrunde liegende Implementierungscode ist unterschiedlich.
Vererbung: Sie definiert, wie Klassen zueinander in Beziehung stehen und Merkmale gemeinsam nutzen. Die Funktionsweise der Vererbung besteht darin, Klassen und Unterklassen zu definieren, wobei die Unterklasse alle Merkmale der übergeordneten Klasse erbt haben Konsistenz und ermöglichen die gemeinsame Nutzung von Code, ohne alle Merkmale der übergeordneten Klasse definieren zu müssen, wenn man sich für die Erstellung einer neuen Klasse entscheidet.
Verwenden Sie Klassen in ASP, um Modularität zu erreichen
Lassen Sie mich dies anhand einiger einfacher Beispiele erläutern. Beachten Sie, dass es sich hier um eine Idee handelt. Wenn Sie eine Klasse (Basisklasse) zum Erweitern verwenden können, ist dies sehr notwendig (auch sehr schwierig).
Wählen wir zunächst ein einfaches Beispiel:
Wir möchten die Informationen der Benutzer des klassischen Forums anzeigen. Dies ist ein Prozess. Wir behandeln den Benutzer als ein Objekt ID und Geschlecht, Punkte, Berechtigungen, die Implementierungsmethode besteht darin, diese Informationen anzuzeigen, ok, schreiben Sie so:
Klasse blueidea
Privater bname,bpoint,bsex,blevel
'........................
Klasse beenden
Hier deklarieren wir zunächst eine Klasse mit dem Namen blueidea, gefolgt von einigen privaten Variablen, um die Eigenschaften der blueidea-Klasse zu speichern. Auf diese Variablen kann nicht von außerhalb des Codes zugegriffen werden Wert. Indirekt an private Variablen zahlen
'------------------------------------------------ - ---------------
Eigenschaft Get getname
getname=bname
End-Eigenschaft
Eigenschaft Let getname(nameid)
bname=nameid
Wenn nameid= Dann
bname=Kein registrierter Benutzer
Ende wenn
End-Eigenschaft
'------------------------------------------------ - -----------------
Eigentum Holen Sie sich Getsex
getsex=bsex
End-Eigenschaft
Eigentum Lass getsex(sex)
bsex=killint(sex,0,0)
Wenn bsex=0, dann
bsex=männlich
Anders
bsex=weiblich
Ende wenn
End-Eigenschaft
'------------------------------------------------ - -----------------
Eigenschaft Getpoint abrufen
getpoint=bpoint
End-Eigenschaft
Eigenschaft Let getpoint(point)
bpoint=killint(point,0,0)
End-Eigenschaft
'------------------------------------------------ - -----------------
Hier gibt es eine Killint-Funktion, um die Gültigkeit der Daten zu bestimmen. Ihr Prototyp ist:
Private Funktion killint(i,killstr,killsub)
Wenn nicht, istNumeric(i) dann
i=killstr
ElseIf i<=0 Then
i=killsub
Ende wenn
killint=Int(Left(i,5))
Funktion beenden
Die Funktion dieser Funktion ist sehr klar und nicht mehr kompliziert.
Da wir die Benutzerebene anhand von Punkten beurteilen müssen, wird hier eine private Funktion definiert:
Private Funktion getlevel()
bpoint=killint(bpoint,0,0)
Wenn bpoint<500 Dann
blevel=Juniormitglied
ElseIf bpoint>=500 And bpoint<=100 Then
blevel=Premium-Mitglied
Anders
blevel=ultimatives Mitglied
Ende wenn
Getlevel=blevel
Funktion beenden
Wenn wir die Informationen des Benutzers zurücksenden möchten, müssen wir eine öffentliche Funktion definieren, um die Informationen anzuzeigen:
Öffentliche Funktion showuser()
Response.write(<h5>Das Folgende zeigt die Informationen von <font color=red>&bname&</font>:</h5>)
Response.write(<h5>Geschlecht:<font color=red>&bsex&</font></h5>)
Response.write(<h5>Points:<font color=red>&bpoint&</font></h5>)
getlevel
Response.write(<h5>Level:<font color=red>&blevel&</font></h5>)
Funktion beenden
Unterricht beenden
Wenn Sie diese Klasse verwenden, verwenden Sie sie folgendermaßen: (Ich habe hier eine Formularverarbeitung geschrieben)
Setze blueideauser=new blueidea
blueideauser.getname=Trim(request(id))
blueideauser.getsex=request(sex)
blueideauser.getpoint=request(point)
blueideauser.showuser
Wenn Sie den Effekt sehen möchten, schauen Sie hier vorbei: http://www.5do8.com/net/aspclass/class.asp
Klasse, die das Lesen von Datenbankinformationen steuert:
Referenzquellcode
'Name: ado_5do8
'Funktion: Verschiedene Vorgänge der Datenbank lesen
„Quellenkultiviertes Dorf http://www.5do8.com http://www.Blueidea.com-5do8
„Erstellung: 5do8
„Kontakt:[email protected]
'Aktualisierung: 13. November 2005
'Autorisierung: Blue Ideal-Website-Punkte überschreiten 3.000, alle registrierten Benutzer von Gengyun Village
'Schnittstelle der Klasse: ado_5do8.ConnectString=absoluter Pfad zur Datenbank
'ado_5do8.rs_top Anzahl der Aufrufe, Name der Tabelle
Klasse ado_5do8
Private conn,sqlstr,rs,iid,itable,isession
'sqlstr: Datenbankadresse, absoluter Pfad, privat
'conn: Öffnen Sie die Datenbankverbindung, privat
'------------------------------------------------ - -----------------
rem entfernt einige unerwünschte Zahlen
Private Funktion litter_in(r1,r2)
Wenn IsNumeric(r1) und IsNumeric(r2), dann
Dim dimrr
Wenn r1>r2 Dann
dimrr=r2
Anders
dimrr=r1
Ende wenn
Anders
dimrr=0
Ende wenn
litter_in=dimrr
Funktion beenden
'------------------------------------------------ - ---------------
Private Funktion killint(i,killstr,killsub)
Wenn nicht, istNumeric(i) dann
i=killstr
ElseIf i<=0 Then
i=killsub
Ende wenn
killint=Int(Left(i,5))
Funktion beenden
'------------------------------------------------ - ---------
privater Sub startconn()
Bei Fehler Weiter fortsetzen
Setze conn=server.CreateObject(adodb.connection)
strconn=Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & Server.MapPath(sqlstr)
conn.open strconn
Wenn Sie sich irren, dann
ähm.Klar
SetConn=Nichts
mess=Es ist ein Fehler aufgetreten und es kann keine Verbindung zur Datenbank hergestellt werden
Antwort.write(Durcheinander)
Antwort.Ende
Anders
mess=Verbindung zur Datenbank erfolgreich hergestellt.......<br/>
Antwort.write(Durcheinander)
Ende wenn
Sub beenden
'------------------------------------------------ - --------------
privater Sub closeconn()
Verbindung schließen
Setze conn=Nothing
Response.write(<strong style='color:red'>Verbindungsverbindung schließen</strong>...<hr/>)
Sub beenden
'------------------------------------------------ - ---------------
Private Sub-Schließer()
rs.close
Setze rs=Nothing
Response.write(<strong style='color:#085420'>Datenbank RS schließen</strong>.....<br/>)
Sub beenden
'------------------------------------------------ - ---------------
Besitz erlangen
havese=issession
End-Eigenschaft
Immobilienvermietung (Ihre Sitzung)
isession=IhreSitzung
Wenn yoursession= Dann
isession=nodef
Ende wenn
End-Eigenschaft
'------------------------------------------------ - ---------------
Öffentliche Funktion makesession(arraydata)
Wenn IsArray(arraydata), dann
makear=arraydata
Anders
makear=Array(0,0,0,0)
Ende wenn
Wenn issession= Dann
isession=nodef
Ende wenn
session(isession)=makear
Funktion beenden
'------------------------------------------------ - ---------------
private Funktion getsession()
thisget=session(isession)
Wenn nicht, ist IsArray(thisget) dann
thisget=Array(0,0,0,0)
Ende wenn
Getsession=thisget
Funktion beenden
'------------------------------------------------ - ---------------
Eigenschaft GetConnectString
ConnectString = sqlstr
End-Eigenschaft
Eigenschaft Let ConnectString(str)
sqlstr = str
End-Eigenschaft
'------------------------------------------------ - ---------------
Eigenschaft Get getid
getid = iid
End-Eigenschaft
Eigenschaft Let getid(id)
iid = id
End-Eigenschaft
'------------------------------------------------ - ---------------
Eigentum erhalten
gettable = itable
End-Eigenschaft
Eigenschaft Let gettable(table)
Tabelle = Tabelle
End-Eigenschaft
'------------------------------------------------ - ---------------
'------------------------------------------------ - -----------------
öffentliche Funktion readarraysession(iStart,ipageno,irowid)
rowid=killint(irowid,0,0)
start=killint(istart,0,0)
pageno=killint(ipageno,5,5)
data=getsession
iRows = UBound(data, 2)
iCols = UBound(data, 1)
Response.write(<h5> Gesamtzahl erhalten:)
Response.write(<b> &iRows+1&</b> Nachrichten</h5><hr/><ul style='width:100%;'>)
Wenn rowid = 0 dann
Wenn iRows > (ipageno + iStart) Dann
iStop = ipageno + iStart - 1
Anders
iStop = iRows
Ende wenn
Für iRowLoop = Start bis iStop
Response.Write (<li style='padding:4px 0;'><a href=?k=read&rowid=&irowloop+1&>&data(1, iRowLoop) & </a><span style='padding:4px 0 4px 10px;background-color:#ccc; '>Langsamer, nicht zum Klicken empfohlen--><a href=?k=list&id=&data(0,irowloop)&>update</a></span></li>)
Nächste
Response.Write </ul><div style='top:20px;background-color:#ccc;color:#020;font-weight:bold;bordr-top:2px solid #008;padding:10px 0;color: #b00'>Liste (<a href=default.asp>Zurück zum typischen Modus</a>):
wenn Start > 0 dann
Response.Write <A HREF=?k=read&Start= & iStart-ipageno &&pageno= & ipageno & >Previous</A>
Ende wenn
wenn iStop < iRows dann
Response.Write <A HREF=?k=read&Start= & iStart+ipageno &&pageno= & ipageno & >Next</A>
endIf
Antwort.write</div>
Anders
rowid=litter_in(rowid-1,iRows)
Response.write(<div style='width:85%'><h4 style='text-align:center'><a href=?k=read&pageno=&pageno&&start=&start&>Liste zurückgeben</a></h4></h2><hr/><h5>&server.htmlencode(data(1,rowid))&</h5><p >&server.htmlencode(data(2,rowid))&<h5>+-----&server.htmlencode(data(3,rowid))&)
Antwort.write(<div>)
Ende wenn
Funktion beenden
'------------------------------------------------ - ---------------
Öffentliche Funktion list_ids()
sql3=select * from &itable& where id=&iid&
startconn()
Setze rs=conn.execute(sql3)
Wenn rs.eof und rs.bof dann
Daten=Array(0,0,0,0)
Anders
data=Rs.GetRows()
Ende wenn
Schließer
closeconn
Response.write(UBound(data)&:)
Response.write(server.htmlencode(data(2,0)))
Funktion beenden
'------------------------------------------------ - ---------------
Öffentliche Funktion rs_top(num,table,whe)
startconn()
sql=wähle oben &num& * aus &table& aus
sql2=wähle count(*) als szd_count aus &table& &whe&
Setze rs=conn.execute(sql2)
szd_count=rs(szd_count)
Schließer
Setze rs = Conn.Execute(sql)
Daten verdunkeln
Wenn Rs.Eof Dann
Daten=keine Daten
Anders
data=Rs.GetRows()
Ende wenn
Schließer
closeconn()
Anruf führt Sitzung durch (Daten)
Funktion beenden
'++++++++++++++++++++++++++++++++++++++++++++++++ + +++++++++
Unterricht beenden
Bei Verwendung:
Schwache Aktion
Aktion=Anfrage(k)
Wenn action=view Dann
Rufen Sie viewnew auf
ElseIf action=list Then
Anrufliste()
ElseIf action=read Then
Rufen Sie read() auf
Anders
Callff()
Ende wenn
Subff()
%>
<form style=border-top:2px solid #008;border-bottom:2px solid #008;margin:auto;background-color:#eee;padding:20px 5px;color:#008;font-weight:bold;>
<label>Gesamtmenge der angezeigten Informationen:<input name=n type=text maxlength=4 size=10 />Anzahl der Seiten pro Seite:<input name=pagesize type=text maxlength=4 size=10 value=5/> <Eingabename =arrstart type=hidden value=0></label>
<h5 style=border-top:1px solid #000;padding:5px 0> Operation:<input name=k type=submit value=view /></h5>
</form> <%End sub%>
<%Sub viewnew()
f_num=killint(request(n),1,1)
pagesize=killint(request(pageno),5,5)
arrstart=killint(request(start),0,0)
rowid=killint(request(rowid),0,0)
Setzen Sie cs=new ado_5do8
cs.ConnectString=data/a.mdb
cs.havese=shi
cs.rs_top f_num,site_szd,
cs.readarraysession arrstart,pagesize,rowid
Sub beenden
Unterliste()
Response.write(<h5><a href=default.asp>Zurück zum Standardmodus</a></h5>)
Spezifische Informationen werden unter „response.write:<hr/>“ angezeigt
id=Anfrage(id)
id=killint(id,1,1)
Setze listid=new ado_5do8
listid.ConnectString=data/a.mdb
listid.getid=id
listid.gettable=site_szd
listid.list_ids()
Sub beenden
Subread()
Response.write<div style='background-color:#ccc;padding:20px 0;color:080;font-weight:bold;border-bottom:2px solid #008'>Die Seitenanalyse ist abgeschlossen. Bitte aktualisieren Wählen Sie <a href=default.asp>Zurück zum typischen Modus</a>Parameter: Start, Startelement, Anzahl der Elemente pro Seite</div>
pagesize=killint(request(pageno),5,5)
arrstart=killint(request(start),0,0)
rowid=killint(request(rowid),0,0)
Setzen Sie cs=new ado_5do8
cs.havese=shi
cs.readarraysession arrstart,pagesize,rowid
Sub beenden
Funktion killint(i,killstr,killsub)
Wenn nicht, istNumeric(i) dann
i=killstr
ElseIf i<=0 Then
i=killsub
Ende wenn
killint=Int(Left(i,5))
Funktion beenden
%>