OoP starts here!

oop-programmingOOp Starts here! Questa serie di post sono delle note ad un ripasso che sto facendo sulla programmazione ad oggetti.  Come guida sto utilizzando il libro “The Object Oriented Thought Process”. E’ un libro introduttivo alla programmazione ad oggetti. Mi serve sempre per rinfrescare le basi.

La programmazione ad oggetti è oggi uno standard di fatto nell’industria del software. Se vi dovesse capitare di sostenere dei colloqui di lavoro per un posto di programmatore molto probabilmente vi chiederanno i concetti di polimorfismo, ereditarietà, incapsulazione, data hiding (alcuni concetti proprio non si possono esprimere in italiano) e astrazione.

Fino a poco tempo fa la regina dei modelli di programmazione è stata la “programmazione procedurale”.  La programmazione procedurale può essere sintetizzata come una sorta di “black-box”. I dati sono divisi dalle procedure e dalle funzioni. Abbiamo quindi dati globali che passano  nella blackbox , vengono modificati e inviati in output.

Nella programmazione ad oggetti, l’oggetto contiene i dati e i “comportamenti”. In inglese il termine è “behavior”. Ad esempio l’oggetto persona ha degli attributi e dei comportamenti. Può avere gli occhi blu o neri, i capelli castani o biondi, può camminare,correre, parlare e urlare.

Quali sono i vantaggi di utilizzare la programmazione ad oggetti rispetto alla programmazione procedurale?

  1. i dati e le operazioni che vengono fatte sui dati sono incapsulate nell’oggetto
  2. solo le proprietà necessarie vengono esposte in modo pubblico
  3. Il sistema è testabile e robusto
  4. non avendo dati “globali” non c’è la possibilità che qualcuno modifichi i dati mentre li usiamo.

Molti linguaggi di programmazione “obbligano” il programmatore ad usare gli oggetti. Questo tuttavia non significa programmare ad oggetti. Esistono dei principi che devono essere rispettati altrimenti gli oggetti ti si ritorceranno contro!

Nella prossima nota inizieremo ad approfondire meglio i concetti di oggetto e classe.

Non tutti  sono estimatori della programmazione ad oggetti. Vi invito a leggere questo post:  “Object oriented programming is an expensve disaster which must end” .
Non sono d’accordo con l’autore ma prima di dargli una risposta voglio rinfrescare le mie basi.
Buon OOP a tutti.

Chi vuole prendere il libro lo trova su amazon:

 

Scritto in OOP

Lascia un commento