Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

I Messaggi

Stabilire la comunicazione tra gli oggetti
Stabilire la comunicazione tra gli oggetti
Link copiato negli appunti

Si è detto che i metodi rappresentano le azioni che un oggetto è in grado di eseguire. Ma, in base a quale criterio vengono scatenate ed eseguite tali azioni? Semplicemente rispondendo alle "sollecitazioni" provenienti da altri oggetti.

Quando, ad esempio, l'oggetto masterizzatore esegue il metodo Scrivi_CD, un altro oggetto (per esempio, il controller) gli avrà precedentemente inviato una simile richiesta sollecitandone l'azione di scrittura.

Tali sollecitazioni costituiscono quelli che, in un programma che utilizza il paradigma OOP, vengono definiti messaggi. Questi ultimi rappresentano il cuore del modello ad oggetti (come rappresentato in figura),

 

Figura 1. Colloquio tra oggetti
Colloquio tra oggetti

,ovvero un insieme di oggetti che eseguono determinate azioni in concomitanza di messaggi e che inviano messaggi a loro volta ad altri oggetti.

Probabilmente tali concetti possono suscitare, inizialmente, un po' di confusione ma sono più semplici di quanto si possa ritenere. Per fare maggiore chiarezza aggiungiamo che un oggetto può inviare dei messaggi soltanto alle sue proprietà (in particolare a quelle che sono definite a loro volta come oggetti.

Si faccia riferimento, a tal proposito, alla definizione di peer object). Quindi, con riferimento al nostro esempio, potremo dire che l'oggetto controller avrà al suo interno una proprietà masterizzatore, alla quale sarà in grado di inviare dei messaggi ogni qual volta si desideri che il masterizzatore compia una delle sue azioni.

Si è soliti suddividere i messaggi nelle seguenti categorie:

  • Costruttori
    I Costruttori costituiscono il momento in cui viene creato un oggetto. Essi devono essere richiamati ognivolta che si vuole creare una nuova istanza di un oggetto appartenente ad una classe e, solitamente, svolgono al loro interno funzioni di inizializzazione.
  • Distruttori
    I Distruttori, come si intuisce facilmente dal nome, svolgono la funzione inversa dei costruttori: distruggono un oggetto (ovvero ne eliminano la allocazione dalla memoria). All'interno di questi metodi viene, solitamente, effettuata anche una sorta di pulizia del codice, rimuovendo eventuali variabili allocate sulla memoria dinamica (heap).

    Molti linguaggi orientati agli oggetti (come ad esempio Java e C#) non forniscono un uso diretto dei distruttori ma prevedono una rimozione automatica dell'oggetto quando questo esce dal contesto dell'applicazione (per approfondimenti in merito, si guardi il concetto di Garbage Collector in Java).

  • Accessori (Accessors)
    I messaggi di tipo "Accessors" vengono utilizzati per esaminare il contenuto di una proprietà di una classe. Solitamente si utilizzano questi metodi per accedere alle variabili dichiarate con visibilità Private (vedremo il significato di questo termine nel prossimo paragrafo). Una particolarità: i metodi di tipo selectors (Selettori) eseguono un confronto tra due o più elementi prima di restituire il valore di ritorno.
  • Modificatori (Mutators)
    I Modificatori rappresentano tutti i messaggi che provocano una modifica nello stato di un oggetto.

Ti consigliamo anche