Cuore Batti Cuore - Loris Reinhard - Radio Genius - Alex Damiani e-Thomas.net Network:
 
Il tuo IP: 38.103.63.60
 

Altro
Scarica

 

Sei in: Per i Webmaster - Corso di ASP - Gli oggetti

Spesso si sente parlare di programmazione ad oggetti o rivolta agli oggetti ma cosa si intende con questa definizione? In poche parole la si può riassumere come una rappresentazione software di oggetti del mondo reale per i quali, come vedremo, si parla di proprietà, metodi ed eventi.

Quando si sarà capito che cosa si intende per oggetto, saremo in grado di capire anche come gli oggetti nella programmazione possano essere utili agli sviluppatori di software.

Che cosa è un Oggetto?
Nel mondo reale sappiamo già che cosa sono gli oggetti. Sono cose che si possono vedere, toccare, usare come un elettrodomestico, una macchina, un arnese da lavoro. Prendiamo ad esempio un telefono; ogni telefono ha un microfono, un altoparlante e un tastierino numerico. Queste sono proprietà fisiche del telefono. Si può dire che un telefono ci permette di fare delle cose, ad esempio chiamare qualcuno, parlargli. Un telefono ci avvisa quando qualcun altro ci chiama e questo farà sì che noi solleviamo il ricevitore. In maniera più astratta, si può dire che un telefono abbia:

  • Alcune proprietà che lo descrivono
  • Un insieme di cose o metodi che ci permettono di compiere azioni
  • L'abilità di compiere azioni se si genera un evento

Vediamo una tabella riassuntiva di queste tre voci.

Descrizione del telefono Il telefono è grigio
Il telefono è fatto di plastica
Il telefono pesa 450 grammi
Il telefono ha 12 tasti
Il numero del telefono è 0522 333248
Il telefono è connesso alla linea
A cosa serve Possiamo telefonare
Possiamo rispondere ad una chiamata
Possiamo interrompere una chiamata
Possiamo inserire in nostro numero di carta di credito
Possiamo disconnetterlo dalla linea
Cosa può fare per farci agire Qualcuno ci sta chiamando
La persona chiamata è occupata
Un'altra persona ci sta chiamando mentre siamo in altra conversazione

In termini più legati all'informatica, come già detto in precedenza, si parla di proprietà, metodi ed eventi. C'è un altro termine da tenere in considerazione: istanza. Quando parliamo di un unico oggetto, possiamo usare il termine di istanza per dire che si sta parlando di un oggetto in particolare. Tornando all'esempio del telefono, si può parlare di una istanza che prende in considerazione il telefono di Pippo e una che prende in considerazione il telefono di Pluto. Stiamo parlando dello stesso tipo di oggetto che però nei due casi potrebbe avere proprietà diverse; per esempio quello di Pippo potrebbe essere blu a differenza di quello di Pluto che magari è grigio. Quando si parla di un oggetto in particolare di una determinata classe, si dice che l'oggetto è stato istanziato. Quello che succede è che si genera una copia di tutte le proprietà e degli eventi dalla descrizione dell'oggetto ma i metodi (solitamente molte righe di codice) rimangono nel luogo d'origine e le sezioni del codice vengono utilizzate da tutte le diverse istanze dell'oggetto.

Proprietà
Quando parliamo delle caratteristiche di un oggetto, ci stiamo riferendo alle sue proprietà. Ogni proprietà è descritta da un nome al quale viene assegnato un valore. Nell'esempio del telefono si può fare una lista di queste accoppiate:

Nome della Proprietà Valore della Proprietà
Colore Grigio
Materiale Plastica
Peso 450 grammi
NumeroDiTasti 12
NumeroDelTelefono 0522 333248
Connesso

Vi possono essere varie istanze dello stesso oggetto con proprietà diverse, vediamo un esempio:

 Nome della Proprietà Telefono di Pippo Telefono di Pluto
Colore Grigio Blu
Materiale Plastica Termoplastica
Peso 450 grammi 400 grammi
NumeroDiTasti 12 12
NumeroDelTelefono 0522 333248 02 3516548
Connesso

Metodi
Un'altra caratteristica degli oggetti è che possono compiere delle operazioni per noi. Per esempio un metodo EffettuaChiamata ci connetterà al nostro operatore telefonico che instraderà la chiamata e farà suonare il telefono del destinatario. Non tutti gli oggetti hanno queste funzionalità; una sedia per esempio ci permette di metterci a sedere, quindi possiamo dire che la sua funzione sia quella di sopportare il nostro peso. Gli oggetti che compiono azioni che sono più 'funzionali' posseggono dei metodi. Ogni operazione che un oggetto può compiere è definita appunto metodo. Vediamo una tabella riassuntiva:

Nome del Metodo Descrizione
PlaceCall Effettua una chiamata
Answer Risponde ad una chiamata
HangUp Chiude la chiamata corrente
SendCardNumber Inserisce o spedisce il nostro numero di carta
Disconnect Disconnette il telefono dalla linea

Solitamente alcuni metodi necessitano di parametri aggiuntivi oltre alla chiamata del metodo. Per esempio il fatto che si sollevi la cornetta per rispondere ad una chiamata non ha bisogno di nessun'altra informazione ma nel caso di una chiamata da effettuare, occorre senz'altro fornire il numero di telefono da chiamare. Ecco quindi che, come i parametri che vengono passati a subroutine e funzioni, anche quando si effettua una chiamata ad un metodo si possono passare dei parametri. Se ritorniamo ai metodi del nostro oggetto telefono, possiamo identificare quali metodi necessitano di parametri:

Nome del Metodo Parametri
PlaceCall Numero di telefono da chiamare
Answer Nessun parametro
HangUp Nessun parametro
SendCardNumber Numero della carta, numero PIN
Disconnect Nessun parametro

Alcuni metodi possono anche ritornare dei valori che sono appunto detti valori di ritorno.

Nome del Metodo Valori di ritorno
PlaceCall True (se la chiamata ha avuto successo)
False (se la chiamata non ha avuto successo)
Answer Nessun valore di ritorno
HangUp True (se il telefono è stato chiuso bene)
False (se il telefono è stato chiuso male)
SendCardNumber True (se la carta è stata accettata)
False (se la carta non è stata accettata)
Disconnect Nessun valore di ritorno

Eventi
Le proprietà e i metodi sono modi in cui l'utilizzatore dell'oggetto può comunicare con l'oggetto stesso, ma cosa succede se l'oggetto deve comunicare con il programma che lo ha creato? Per esempio quando c'è una chiamata in entrata, il telefono ci deve avvisare. Si genera quindi un evento, cioè in questo caso molto probabilmente la suoneria emette un suono che fa sì che noi alziamo la cornetta. Anche gli eventi possono passare dei valori, per esempio nel caso in cui si abbia la possibilità di visualizzare il numero del chiamante ecco che l'evento, oltre che ad avvisarci della chiamata in arrivo, ci comunica anche il numero di chi ci sta chiamando.

Incapsulazione
Quando si utilizzano oggetti creati da terze parti, non ci si deve preoccupare di come questi oggetti funzionino bensì del come li si debba utilizzare. Nel caso del telefono, non dobbiamo preoccuparci di come la nostra voce faccia a raggiungere il nostro interlocutore, l'unica cosa che dobbiamo fare è alzare la cornetta e comporre il numero. Nel caso degli oggetti in ASP, non dobbiamo preoccuparci di come siano stati programmati, basta sapere come utilizzarli. Questo concetto di utilizzo di un oggetto, senza sapere come l'oggetto funzioni nei minimi particolari, viene detto incapsulazione.

Programmare con gli oggetti
Immaginiamo ora di avere il nostro telefono collegato al nostro PC e vediamo come potremmo interagire con esso via software. Non vedremo come l'oggetto funziona nei particolari o come è stato programmato ma vedremo come di solito si utilizzano in ASP le proprietà e i metodi di un oggetto. Nel caso del telefono, potremmo immaginarla così:

<%
Option Explicit
Dim objTelephone
Set objTelephone = Server.CreateObject("MyTelephone.Telephone")
objTelephone.Color = "Blue"
objTelephone.Material = "Thermoplastic"
objTelephone.Weight = 450
objTelephone.NumberOfKeys = 12
Response.Write "Fatto"
Set objTelephone = Nothing
%>

In questo primo pezzo di codice si vede come si possono andare a modificare le proprietà di un istanza di un oggetto. Alla riga 3 si definisce la variabile che conterrà l'istanza dell'oggetto. Tramite l'istruzione Set si inizializza l'oggetto sfruttando il metodo Server.CreateObject dopodiché, tramite la sintassi oggetto.proprietà diamo i valori delle proprietà dell'oggetto.

Vediamo ora come richiamare le proprietà dell'oggetto stesso.

<%
Option Explicit
Dim objTelephone
Set objTelephone = Server.CreateObject("MyTelephone.Telephone")
objTelephone.Color = "Blue"
objTelephone.Material = "Thermoplastic"
objTelephone.Weight = 450
objTelephone.NumberOfKeys = 12
Dim strColor, strMaterial, intNumKeys, intWeight, blnConnected
strColor = objTelephone.Color
strMaterial = objTelephone.Material
intNumKeys = objTelephone.NumberOfKeys
intWeight = objTelephone.Weight
blnConnected = objTelephone.IsConnected
Response.Write "objTelephone.Color = " & strColor & "<br>"
Response.Write "objTelephone.Material = " & strMaterial & "<br>"
Response.Write "objTelephone.NumberOfKeys = " & intNumeKeys & "<br>"
Response.Write "objTelephone.Weight = " & intWeight & "<br>"
Response.Write "objTelephone.IsConnected = " & blnConnected & "<br>"
Set objTelephone = Nothing
%>

La sintassi per richiamare un metodo è molto simile alla sintassi per ricavare una proprietà; solo due cose bisogna tenere presente:

  • se il metodo richiede dei parametri, bisogna passarli correttamente
  • se il metodo ha un valore di ritorno, dobbiamo leggerlo in qualche modo

<%
Option Explicit
Dim objTelephone
Dim blnIsConnected
Set objTelephone = Server.CreateObject("MyTelephone.Telephone")
Response.Write "Rispondo al telefono...<br>"
objTelephone.Answer()
blnIsConnected = objTelephone.IsConnected
Response.Write "La proprietà IsConnected è " & blnIsConnected
Response.Write "Chiudo il telefono...<br>"
objTelephone.HangUp()
Response.Write "La proprietà IsConnected è " & objTelephone.IsConnected
Set objTelephone = Nothing
%>

Vediamo ora un esempio col passaggio di parametri.

<%
Option Explicit
Dim objTelephone
Dim strPhoneNumber
Dim blnIsConnected
Set objTelephone = Server.CreateObject("MyTelephone.Telephone")
strPhoneNumber = "0522 333248"
Response.Write "Calling " & strPhoneNumber & "<br>"
objTelephone.PlaceCall(strPhoneNumber)
blnIsConnected = objTelephone.IsConnected
Response.Write "La proprietà IsConnected è " & blnIsConnected & "<br>"
Set objTelephone = Nothing
%>

Fino ad ora abbiamo parlato di un oggetto che incontriamo nella vita di tutti i giorni, il telefono. Nella programmazione delle pagine ASP, quello che maggiormente interessa è il fatto che si possa tenere nota di informazioni passate dall'utente, visualizzare informazioni dinamicamente ecc... Ecco che allora Microsoft ha creato oggetti che ci permettono di effettuare molte di queste operazioni. Gli oggetti principali che costituiscono la struttura delle ASP 3.0 sono 7, anche chiamati built-in objects, ovvero oggetti incorporati. Vediamo una lista in ordine alfabetico:

  • Application object
  • ASPError object
  • ObjectContext object
  • Request object
  • Response object
  • Server object
  • Session object

Ve ne sono altri che vedremo man mano, per ora partiamo dai due più utilizzati ovvero gli oggetti Response e Request.

Contattaci. Stampa questa pagina. Contattaci via SMS. e-Thomas.net © 2009 Tutti i diritti riservati
 

F.A.Q. - Chi Siamo - Sitemap - Aspetti legali - Privacy - Le nostre fonti - RSS

Utenti connessi: 44 - Visite: 436.700 dal 10/02/2004 - Visite medie giornaliere: 244