In informatica, un meta-oggetto è un oggetto che manipola, crea, descrive o implementa altri oggetti (incluso se stesso). L'oggetto al quale il meta-oggetto appartiene è chiamato oggetto di base. Alcune informazioni che un meta-oggetto può definire sono il tipo di dato dell'oggetto di base, le sue interfacce, la classe, metodi, attributi, il suo albero di parsing e così via.

I meta-oggetti rappresentano esempi del concetto di riflessione, tale per cui un sistema ha accesso (solitamente in run time) alla sua struttura interna. La riflessione permette ad un sistema di essenzialmente riscrivere se stesso, alterando la sua struttura, durante l'esecuzione.

Protocollo per meta-oggetti Un protocollo per meta-oggetti (in inglese metaobject protocol) fornisce un vocabolario (protocollo) per accedere e manipolare le strutture ed il comportamento di un sistema di oggetti. Le tipiche funzioni di un protocollo per meta-oggetti includono:

Creare o eliminare una classe Creare una nuova proprietà o metodo Far derivare una classe da un'altra classe Generare o cambiare il codice che definisce i metodi di una classe

Un protocollo per meta-oggetti non obbedisce all'aspetto di chiusura previsto nel principio aperto/chiuso, secondo cui i sistemi software devono essere aperti all'estensione, ma chiusi ad eventuali modifiche. Al contrario, un protocollo per meta-oggetti espone in modo trasparente la composizione interna degli oggetti e l'intera struttura di tutti gli oggetti contenuti in un sistema.

Applicazioni In un linguaggio di programmazione, un protocollo per meta-oggetti fornisce strutture che possono essere impiegate per implementare la programmazione orientata agli aspetti.

Note

Categoria:Programmazione