Perché programmare ad oggetti



La programmazione ad oggetti rappresenta una metodologia di sviluppo software che si contrappone alla programmazione procedurale, spesso troppo poco gestibile e confusionaria.

Tramite l'approccio orientato ad oggetti è possibile definire delle classi che rappresentano un tipo di dato gestito dall'applicazione che può essere utilizzato solo tramite particolari interfacce esposte dalla classe stessa verso le altre classi dell'applicazione. All'interno di una classe esistono infatti alcune funzionalità "interne" che non vengono mostrate all'esterno.

Tramite questa tipologia di programmazione si migliora notevolmente il codice limitando le interferenze tra diversi componenti e incapsulando funzionalità specifiche all'interno di una sorta di contenitore che permette una organizzazione più funzionale ed elegante.

Le caratteristiche principali di un linguaggio ad oggetti sono tre:

  • ereditarietà: la possibilità di estendere classi con altre classi che ne ereditano appunto proprietà e metodi;
  • incapsulamento: la possibilità di includere in una classe funzionalità specifiche che non verranno rese pubbliche al resto dell'applicazione;
  • polimorfismo: la possibilità di avere funzionalità particolari che si comportano in maniera diversa in base all'oggetto invocante o ai parametri ad esso passati.

JavaScript è un linguaggio ad oggetti abbastanza particolare. Presenta infatti molte caratteristiche chiave della programmazione ad oggetti (per esempio il fatto che qualsiasi variabile sia un oggetto) ma non tutte (come per esempio la modifica della visibilità di un metodo).

Inoltre presenta moltissimi aspetti facenti capo alla programmazione procedurale (la possibilità di avere funzioni "sganciate" da classi particolari) e aspetti un po' esotici come il concetto di scope e di closure visti nelle lezioni precedenti).

Personalmente preferisco puntare sempre su una programmazione ad oggetti in quanto la ritengo più chiara, manutenibile ed elegante, rispetto ad una programmazione funzionale.

Le mancanze presenti nel linguaggio non devono spaventare lo sviluppatore orientato agli oggetti in quanto possono comunque essere in qualche modo aggirate con un po' di mestiere e di buona programmazione. L'unica effettiva mancanza che ho riscontrato nel linguaggio è quella delle interfacce, componente abbastanza comodo nella programmazione ad oggetti.

Ultimi articoli JavaScript

PhantomJS, headless browser per test con Javascript

Il tool ideale per realizzare, da terminale, operazioni in remoto su...

Creare e leggere QR Code in JavaScript

Applicazioni 'QR Code enabled' per il Web e per il mobile,...

Jquery UI Map: web-mapping con Google Maps e jQuery

Un plugin di jQuery UI per intefacciare applicaizoni Web/mobile con...

Scrollorama e Scrolldeck, slideshow d'effetto con jQuery

Plugin jQuery per ottenere Slideshow con diversi effetti di scrolling

jCanvas, un primo semplice grafico

Alla scoperta della libreria jCanvas, per semplificare il disegno e...

Altri articoli

Guide JavaScript

Guida Node.js

Il framework che permette di per usare V8, l'interprete JavaScript...

Canvas, guida ai framework

Canvas, tra gli elementi di HTML5 è forse quello di maggior impatto....

Guida jQuery UI

Creare siti ricchi e dinamici con jQuery UI, il progetto ufficiale...

Altre guide

Newsletter @JavaScript

Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Webmaster base

18 Giugno 2012 a Milano
Disponibilità: 6 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso JQuery e Ajax per Webmaster

03 Luglio 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti

Corso Webmaster base

11 Giugno 2012 a Roma
Disponibilità: 7 Posti