O que escrevi antes:
Todo mundo que escreve programas sabe que quando você desenvolve gradualmente as funções que deseja implementar, na maioria das vezes, o que você escreveu no primeiro dia será esquecido no dia seguinte. Muitas vezes, você terá que escrever Notas detalhadas de desenvolvimento do programa. Isto é especialmente verdadeiro no desenvolvimento de sistemas ASP quando os arquivos e funções são complexos. Quando planejamos modificar algumas funções do site, sentimos que não temos ideia por onde começar ou o que achamos que precisa ser modificado. Neste momento, se você aprendeu alguma linguagem de programação orientada a objetos, naturalmente pensará em como implementar a função de código em módulos. ASP não é programação orientada a objetos por natureza, mas VBSCRPIT6.0 fornece classes. Realize o encapsulamento de código e implemente a linguagem do módulo.
Em primeiro lugar, quero escrever aqui alguns conceitos muito oficiais, que pretendem ilustrar que a orientação a objetos é um modelo muito concreto e substancial, e algumas pessoas não podem se assustar ao ver o objeto.
Um objeto é algo que pode ser visto, sentido, ouvido, tocado, saboreado ou cheirado. Aqui o definimos desta forma: um objeto é uma entidade independente identificada por um conjunto de propriedades e comportamentos identificáveis.
Na programação orientada a objetos (oop), os dois termos a seguir são usados.
Classe: Este é o template de um objeto e define as características do objeto.
Instância: Este é um objeto real, algo com o qual você pode interagir.
Propriedades, métodos e eventos
Na OOP, os seguintes termos descrevem as características dos objetos:
Atributo: Esta é uma classificação que descreve os atributos de um objeto.
Método: Este é um verbo que descreve o que um objeto pode fazer ou o que se espera que ele faça.
Evento: descreve a operação realizada por um objeto em resposta a uma ação.
Os objetos fazem parte da programação orientada a objetos e do design orientado a objetos. Eles têm grandes vantagens. Muitas pessoas pensam que este é um assunto complicado, mas na verdade é muito simples e pode ser explicado em quatro termos simples. Abstração, encapsulamento, polimorfismo e herança.
Abstração: Essa é uma forma de esconder a complexidade, o funcionamento interno de uma classe, para que o usuário não precise saber como ela funciona, simplesmente assim. Se você quiser assistir TV, não precisa saber como a TV funciona. Basta ligar a TV e procurar canais. O botão liga/desliga abstrai a operação real. Método trim, que pode deletar Para o espaço no final da string, você também não precisa saber como ele realiza essa tarefa, basta saber que ele possui essa função.
Encapsulamento: Cada objeto contém todas as informações necessárias para realizar as operações. Este objeto é chamado de encapsulamento, portanto o objeto não depende de outros objetos para completar suas operações. lugares para completar suas operações. Todos os caracteres são convertidos para letras maiúsculas.
Polimorfismo: Este termo é usado para indicar que diferentes objetos podem executar a mesma ação, mas por meio de seu próprio código de implementação. O nome é o mesmo, mas o código de implementação subjacente é diferente.
Herança: Define como as classes se relacionam entre si e compartilham características. A forma como a herança funciona é definir classes e subclasses, onde a subclasse herda todas as características da classe pai. tem consistência e permite o compartilhamento de código sem a necessidade de definir todas as características da classe pai caso decida criar uma nova classe.
Use classes em ASP para obter modularidade
Deixe-me explicar com alguns exemplos simples. Observe que o que é enfatizado aqui é uma ideia. Se você pode usar uma classe (classe base) para expandir ao desenvolver um site ASP, isso é muito necessário (também muito difícil).
Vamos escolher primeiro um exemplo simples:
Queremos exibir as informações dos usuários do fórum clássico. Depois de inserir o ID do usuário, alguns atributos do usuário podem ser exibidos. ID e gênero. Pontos, permissões, o método de implementação é exibir essas informações, ok, escreva assim:
Classe azulideia
Nome privado, bpoint, bsex, nível
'........................
aula final
Aqui primeiro declaramos uma classe chamada blueidea, seguida por algumas variáveis privadas para armazenar as propriedades da classe blueidea. Essas variáveis não podem ser acessadas de fora do código. Para definir essas variáveis, use a instrução de propriedade para obter o. valor. Pagar indiretamente a variáveis privadas.
'------------------------------------------------ - ---------------
Propriedade Obter getname
getnome=bnome
Fim da propriedade
Propriedade Let getname(nameid)
bnome=nomeid
Se nameid = Então
bname=Nenhum usuário registrado
Terminar se
Propriedade final
'------------------------------------------------ - -----------------
Propriedade Obter getsex
getsex=bsex
Fim da propriedade
Propriedade Deixe getsex (sexo)
bsex=killint(sexo,0,0)
Se bsex = 0 Então
bsexo=masculino
Outro
bsexo=feminino
Terminar se
Fim da propriedade
'------------------------------------------------ - -----------------
Propriedade Obter ponto de referência
getponto=bponto
Fim da propriedade
Propriedade Let getpoint(ponto)
bponto=killint(ponto,0,0)
Fim da propriedade
'------------------------------------------------ - -----------------
Existe uma função killint aqui para determinar a validade dos dados. Seu protótipo é:
Função privada killint(i,killstr,killsub)
Se não for numérico (i), então
eu=killstr
ElseIf i<=0 Então
eu=killsub
Terminar se
killint=Int(Esquerda(i,5))
Função final
A função desta função é muito clara e não é mais complicada.
Como precisamos avaliar o nível do usuário por meio de pontos, uma função privada é definida aqui:
Função privada getlevel()
bponto=killint(bponto,0,0)
Se bponto<500 Então
blevel=membro júnior
ElseIf bponto>=500 E bponto<=100 Então
blevel=Membro Premium
Outro
blevel=membro final
Terminar se
Getlevel=nível
Função final
Se quisermos devolver as informações do usuário, devemos definir uma função pública para exibir as informações:
Função pública showuser()
response.write(<h5>O seguinte mostra as informações de <font color=red>&bname&</font>:</h5>)
resposta.write(<h5>Sexo:<font color=red>&bsex&</font></h5>)
resposta.write(<h5>Pontos:<font color=red>&bpoint&</font></h5>)
obter nível
resposta.write(<h5>Nível:<font color=red>&blevel&</font></h5>)
Função final
Fim da aula
Ao usar esta classe, use-a assim: (escrevi um processamento de formulário aqui)
Definir blueideauser=nova blueidea
blueideauser.getname=Trim(solicitação(id))
blueideauser.getsex = solicitação (sexo)
blueideauser.getpoint=request(ponto)
blueideauser.showuser
Se você quiser ver o efeito, dê uma olhada aqui: http://www.5do8.com/net/aspclass/class.asp
Classe que controla a leitura das informações do banco de dados:
Código-fonte de referência
'Nome: ado_5do8
'Função: Ler diversas operações do banco de dados
'Aldeia cultivada na fonte http://www.5do8.com http://www.Blueidea.com-5do8
'Criação: 5do8
'Contato:[email protected]
'Atualização: 13 de novembro de 2005
'Autorização: os pontos do site Blue Ideal ultrapassam 3.000, todos os usuários registrados da Gengyun Village
'Interface da classe: ado_5do8.ConnectString=caminho absoluto para banco de dados
'ado_5do8.rs_top número de chamadas, nome da tabela
Turma ado_5do8
Conexão privada,sqlstr,rs,iid,itable,isession
'sqlstr: endereço do banco de dados, caminho absoluto, privado
'conn: Abra a conexão do banco de dados, privada
'------------------------------------------------ - -----------------
rem elimina alguns números indesejados
Função privada liteira_in(r1,r2)
Se IsNumeric(r1) e IsNumeric(r2) Então
Dim dimrr
Se r1>r2 Então
dimrr=r2
Outro
dimrr=r1
Terminar se
Outro
dimrr=0
Terminar se
liteira_in=dimrr
Função final
'------------------------------------------------ - ---------------
Função privada killint(i,killstr,killsub)
Se não for numérico (i), então
eu=killstr
ElseIf i<=0 Então
eu=killsub
Terminar se
killint=Int(Esquerda(i,5))
Função final
'------------------------------------------------ - ---------
privado Sub startconn()
Em caso de erro, retomar o próximo
Definir conn=server.CreateObject(adodb.connection)
strconn=Provider=Microsoft.Jet.OLEDB.4.0;Fonte de dados= & Server.MapPath(sqlstr)
conn.open strconn
Se errar então
err.Limpar
SetConn=Nada
mess=Ocorreu um erro e não é possível conectar ao banco de dados
resposta.write(bagunça)
resposta.Fim
Outro
mess=Conectado ao banco de dados com sucesso.......<br/>
resposta.write(bagunça)
Terminar se
Finalizar sub
'------------------------------------------------ - --------------
privado Sub closeconn()
conexão.fechar
Definir conn=Nada
response.write(<strong style='color:red'>Fechar conexão</strong>...<hr/>)
Terminar sub
'------------------------------------------------ - ---------------
Subfechadores privados()
rs.fechar
Definir rs=Nada
response.write(<strong style='color:#085420'>Fechar banco de dados RS</strong>.....<br/>)
Finalizar sub
'------------------------------------------------ - ---------------
Propriedade Obter posse
havese = sessão
Propriedade final
Propriedade Let havese(suasessão)
isession=suasessão
Se sua sessão = Então
isessão=nodef
Terminar se
Fim da propriedade
'------------------------------------------------ - ---------------
Função pública faz sessão (arraydata)
Se IsArray(arraydata) então
makear=arraydata
Outro
makear=Array(0,0,0,0)
Terminar se
Se isession = Então
isessão=nodef
Terminar se
sessão(isessão)=fazer
Função final
'------------------------------------------------ - ---------------
Função privada getession()
thisget=sessão(sessão)
Se não for IsArray(thisget) então
thisget = Matriz (0,0,0,0)
Terminar se
Getsession = thisget
Função final
'------------------------------------------------ - ---------------
Propriedade GetConnectString
ConnectString = sqlstr
Propriedade final
Propriedade Let ConnectString(str)
sqlstr =str
Fim da propriedade
'------------------------------------------------ - ---------------
Propriedade Obter getid
getid=iid
Fim da propriedade
Propriedade Let getid(id)
id = id
Fim da propriedade
'------------------------------------------------ - ---------------
Propriedade disponível para download
gettable = itable
Fim da propriedade
Propriedade Let gettable(tabela)
mesa = mesa
Fim da propriedade
'------------------------------------------------ - ---------------
'------------------------------------------------ - -----------------
Função pública readarraysession(iStart,ipageno,irowid)
rowid=killint(irowid,0,0)
start=killint(istart,0,0)
pageno=killint(ipageno,5,5)
dados=getsessão
iRows = UBound(dados, 2)
iCols = UBound(dados, 1)
response.write(<h5> número total obtido :)
response.write(<b> &iRows+1&</b> mensagens</h5><hr/><ul style='width:100%;'>)
Se rowid = 0 então
Se iRows > (ipageno + iStart) Então
iStop = ipageno + iStart - 1
Outro
iStop = iRows
Terminar se
Para iRowLoop = Iniciar para 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; '>Mais lento, não recomendado clicar--><a href=?k=list&id=&data(0,irowloop)&>atualização</a></span></li>)
Próximo
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'>Lista (<a href=default.asp>Retornar ao modo típico</a>):
se Iniciar > 0 então
Resposta.Escreva <A HREF=?k=read&Start= & iStart-ipageno &&pageno= & ipageno & >Anterior</A>
terminar se
se iStop <iRows então
Resposta.Escreva <A HREF=?k=read&Start= & iStart+ipageno &&pageno= & ipageno & >Próximo</A>
fimSe
resposta.write</div>
Outro
rowid=litter_in(rowid-1,iRows)
resposta.write(<div style='width:85%'><h4 style='text-align:center'><a href=?k=read&pageno=&pageno&&start=&start&>Lista de retorno</a></h4></h2><hr/><h5>&server.htmlencode(data(1,rowid))&</h5><p >&server.htmlencode(data(2,rowid))&<h5>+-----&server.htmlencode(data(3,rowid))&)
resposta.write(<div>)
Terminar se
Função final
'------------------------------------------------ - ---------------
Função pública list_ids()
sql3=selecione * de &itable& onde id=&iid&
startconn()
Definir rs=conn.execute(sql3)
Se rs.eof e rs.bof então
dados = Matriz (0,0,0,0)
Outro
dados=Rs.GetRows()
Terminar se
fechos
fechar conexão
resposta.write(UBound(dados)&:)
resposta.write(server.htmlencode(dados(2,0)))
Função final
'------------------------------------------------ - ---------------
Função Pública rs_top(num,tabela,whe)
startconn()
sql=selecione o topo &num& * da &tabela&
sql2=selecione contagem(*) como szd_count de &table& &whe&
Definir rs=conn.execute(sql2)
szd_count=rs(szd_count)
fechos
Definir rs = Conn.Execute(sql)
escurecer dados
Se Rs.Eof Então
dados=sem dados
Outro
dados=Rs.GetRows()
Terminar se
fechos
fecharconn()
Chamada faz sessão (dados)
Função final
'++++++++++++++++++++++++++++++++++++++++++++++++ + +++++++++
Fim da aula
Ao usar:
Ação escura
ação = solicitação (k)
Se ação = visualizar Então
Visualização de chamadas novo
ElseIf ação=lista Então
Lista de chamadas()
ElseIf ação = ler então
Chamar leitura()
Outro
Callff()
Terminar se
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>Quantidade total de informações exibidas:<input name=n type=text maxlength=4 size=10 />Número de páginas por página:<input name=pagesize type=text maxlength=4 size=10 value=5/> <nome de entrada =arrstart type=valor oculto=0></label>
<h5 style=border-top:1px solid #000;padding:5px 0> Operação:<input name=k type=submit value=view /></h5>
</form> <%End sub%>
<%Subvisualizaçãonova()
f_num=killint(solicitação(n),1,1)
pagesize=killint(request(pageno),5,5)
arrstart=killint(solicitação(início),0,0)
rowid=killint(solicitação(rowid),0,0)
Definir cs = novo ado_5do8
cs.ConnectString=dados/a.mdb
cs.havese=shi
cs.rs_top f_num,site_szd,
cs.readarraysession arrstart,tamanho da página,rowid
Terminar sub
Sublista()
response.write(<h5><a href=default.asp>Retornar ao modo padrão</a></h5>)
Informações específicas são exibidas abaixo de response.write:<hr/>
id = solicitação (id)
id=killint(id,1,1)
Definir listid = novo ado_5do8
listid.ConnectString = dados/a.mdb
listid.getid=id
listid.gettable=site_szd
listid.list_ids()
Finalizar sub
Subleitura()
response.write<div style='background-color:#ccc;padding:20px 0;color:080;font-weight:bold;border-bottom:2px solid #008'>A análise da página foi concluída. Para atualizar, por favor. selecione <a href=default.asp>Retornar ao modo típico</a>Parâmetros: Início, elemento inicial pageno, número de itens por página</div>
pagesize=killint(request(pageno),5,5)
arrstart=killint(solicitação(início),0,0)
rowid=killint(solicitação(rowid),0,0)
Definir cs = novo ado_5do8
cs.havese=shi
cs.readarraysession arrstart,tamanho da página,rowid
Terminar sub
Função killint(i,killstr,killsub)
Se não for numérico (i), então
eu=killstr
ElseIf i<=0 Então
eu=killsub
Terminar se
killint=Int(Esquerda(i,5))
Função final
%>