Redazione
a- a+

Come utilizzare gli oggetti nella programmazione di pagine PHP5

Vediamo la metodologia per affrontare problemi con approccio object oriented. Definizione di: oggetto, classe, istanza, variabile d'istanza e metodo.

La metodologia per affrontare un problema con un approccio object oriented consiste innanzitutto nel suddividerlo in sottosistemi composti da elementi tra loro correlati e che contengono sia i dati che li rappresentano sia le informazioni comportamentali che permettono a questi sottosistemi di vivere di vita propria e di coesistere in relazione con gli altri sottosistemi del sistema più complesso. Questi sottosistemi vengono organizzati in strutture gerarchiche le cui fondamenta sono chiamate oggetti.

Il problema di definire gli elementi logici della programmazione ad oggetti è che spesso queste definizioni racchiudono riferimenti che rendono il tutto un po’ difficile da comprendere. Per spiegare i concetti astratti tipici della programmazione a oggetti partiamo da un esempio. L’oggetto è una istanza di una classe. Un’automobile (oggetto) targa dx123pp (istanza) delle tante fiat punto (classe) che possono esistere. Innanzitutto definiamo un oggetto (object):

La definizione di oggetto racchiude due nuove parole, istanza e classe. Vediamo cosa è una classe (class):

La classe è una categoria di oggetti. Le fiat punto (classe) costituiscono una categoria di automobili (oggetti).

Questo è già più chiaro. Ma veniamo alla definizione di istanza (instance):

L’istanza è l’oggetto considerato rispetto alla classe di appartenenza. Questa particolare auto che ha targa dx123pp (istanza) è un esempio di automobile (oggetto) della categoria di automobili chiamate fiat punto (classe).

Ecco invece cosa si intende per variabile d’istanza (instance variables)

Una variabile d’istanza è una variabile associata all’istanza di una classe. Il numero di porte (variabile d’istanza) dell’automobile è associato alla particolare automobile fiat punto con targa dz123pp (istanza).  Infine, cosa sono i metodi? Eccone la definizione:

Un metodo è l’azione che può essere eseguita da (o su) un oggetto. L’automobile (oggetto) può partire (metodo) accelerare, frenare o parcheggiare (altri metodi).

Riassumendo: un oggetto è definito come un’entità logica che contiene sia i dati sia il codice che li manipola. Gli oggetti della stessa natura sono categorizzati in classi. Una classe è un tipo di dato che al suo interno definisce tutta una struttura degli oggetti che vuole descrivere (classificare da qui il termine classe).

Utilizzando una terminologia cara all’object oriented si può affermare che un oggetto è istanza di una classe per indicare una relazione analoga a quella che intercorre tra una variabile ed il suo tipo.

Tutti i linguaggi di programmazione che si rifanno all’object oriented, ciascuno con le proprie modalità, condividono tre elementi fondamentali: polimorfismo, ereditarietà ed incapsulazione.

Se abbiamo già visto e spiegato i concetti di polimorfismo ed ereditarietà e già discusso il loro utilizzo nella programmazione PHP 5, ci manca ancora di affrontare il tema dell’incapsulazione.

Incapsulazione

L’incapsulazione è un concetto che permette di raggruppare i dati e le operazioni che su questi si possono effettuare con l’obiettivo di separarli dalle altre entità e di proteggerli da utilizzi non conformi ed imprevisti. Il concetto di incapsulazione può essere estremizzato negando la visibilità all’esterno di una classe per tutte quelle informazioni che non sono utili all’utilizzo dell’oggetto stesso. Le buone norme di programmazione object oriented, infatti, prevedono che sia concessa all’esterno la minore visibilità possibile con l’obiettivo di fornire, all’utilizzatore di una classe, un’interfaccia pulita sulle sole informazioni che possono essere utili all’impiego della classe stessa, nascondendo tutto ciò che da un lato potrebbe causare confusione e dall’altro potrebbe rendere instabile l’oggetto se ci fosse un accesso diretto.



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Redazione
Ti interessano altri articoli su questo argomento?
Chiedi alla nostra Redazione!