Programmazione OO

La codifica orientata agli oggetti inserisce nuovi costrutti per supportare i meccanismi di classe, ereditarietà e scambio di messaggi. In questa sezione vedremo come sono implementati dal linguaggio C++, evoluzione ad oggetti del C.

Nei confronti della programmazione ad oggetti si possono tenere due atteggiamenti: considerarla una rivoluzione che taglia con il passato, o vederla come una naturale evoluzione rispetto ai metodi strutturati.

Personalmente ritengo che siano presenti entrambe gli aspetti. La filosofia ad oggetti, come abbiamo visto permea tutte le fasi del ciclo di vita, esaltando fondamentalmente un aspetto: l’indipendenza e la privatezza di ogni modulo.

Rispetto ai moduli dei metodi strutturati, gli oggetti "splendono di luce propria", hanno un loro senso ed una esistenza anche indipendentemente dal resto del programma che li utilizza. E questo è l’aspetto rivoluzionario.

Dal punto di vista della codifica in realtà sono solo state esaltate le istruzioni di separazione e privatezza, introducendo nuovi stili dichiarativi. Si pensi che addirittura il linguaggio C++ nasce come semplice preprocessore del linguaggio C. E questo è l’aspetto conservativo.

Chi utilizza un linguaggio radicalmente ad oggetti, come Smalltalk, si troverà naturalmente sposato verso una visione rivoluzionaria, chi implementa codice in C++, più vicino ai metodi strutturati, affronta la programmazione ad oggetti in un ottica evolutiva.