Programmazione OO, una definizione alternativa

 

La definizione di programmazione Object Oriented più diffusa è quella che si poggia su polimorfismo, ereditarietà e incapsulamento. Ha quel che di misterioso e intangibile che mi ha sempre affascinato e incuriosito.

Esiste anche un modo alternativo di definire programmazione Object Oriented che ha il fascino della praticità e del quotidiano

 

ed è la somma di tre stili di programmazione. 

Il primo è lo stile di programmazione modulare (conosciuto anche come principio di data hiding) in base al quale una struttura data e le procedure che la elaborano (stato e comportamento) formano un modulo dentro cui restano nascosti i dettagli implementativi.  (vedi sul wiki)

Il secondo è lo stile di programmazione dei tipi astratti che dà al modulo definito prima la dignità di "tipo" (una specie di cerimonia di incoronazione) e soprattutto introduce il concetto di istanza che sostituisce i meno pratici handle o hwnd tipici di Win32 che tentavano di imitarla :) .  (vedi sul wiki)

 il terzo è lo stile di programmazione ad oggetti dà al tipo definito prima la dignità di "classe" (dopo l'incoronazione, il trono) e soprattutto introduce il concetto di classe base che evidenzia le similitudini tra 2 classi mettendole in una classe base comune. (vedi nel wiki)

 

Aneddoto ironico, nella buona programmazione OO pratica l'ereditarietà (cioè la definizione di una classe base) viene usata raramente, più spesso si preferisce il contenimento

Tags :   |

Print | posted @ venerdì 6 giugno 2008 1.39

Comments on this entry:

Gravatar # re: Programmazione OO, una definizione alternativa
by Luca Maistrello at 06/06/2008 19.44

Perchè ironico ?
Anche se io stesso ancora non mi sento così "buono" in questo, cerco sempre di spiegare come e perchè l'uso della composizione sia migliore dell'ereditarietà ... si tratta di percorsi di crescita.
A me fa più ridere vedere programmatori ritenuti "esperti" che costruiscono ancora gerarchie di oggetti "statiche".
Comunque, ho ancora tanto da imparare ...
  
Gravatar # re: Programmazione OO, una definizione alternativa
by Luca Minudel at 06/06/2008 22.20

ironico perché è l'ereditarietà a esercitare il fascino maggiore ed è divertente scoprire che solitamente va usata di rado
  
Gravatar # re: Programmazione OO, una definizione alternativa
by LudovicoVan at 07/06/2008 1.09

> La definizione di programmazione Object Oriented più diffusa è quella che si poggia su polimorfismo, ereditarietà e incapsulamento.

Andrebbero nell'ordine inverso. Anzi, incapsulamento e' il concetto base. Ereditarieta' e poliformismo vengono solo nell'universo esteso di Stroustroup.

> Aneddoto ironico, nella buona programmazione OO pratica l'ereditarietà (cioè la definizione di una classe base) viene usata raramente, più spesso si preferisce il contenimento

Non e' ironico se consideri incapsulamento come concetto principale.

-LV
  
Gravatar # re: Programmazione OO, una definizione alternativa
by LudovicoVan at 08/06/2008 22.08

Che sia di solito cio' che e' ausiliario ad esercitare l'interesse primario lo trovi ironico?

Personalmente lo trovo un inconveniente della vita, un dato di fatto, come i gravi e la forza di gravita'.

-LV
  
Gravatar # re: Programmazione OO, una definizione alternativa
by Luca Minudel at 08/06/2008 22.54

si, è proprio quello che intendevo. ironico no?
  
Gravatar # re: Programmazione OO, una definizione alternativa
by LudovicoVan at 08/06/2008 23.03

No.

:)

-LV
  

Your comment:

Title:
Name:
Email:
Website:
 
Italic Underline Blockquote Hyperlink
 
 
Please add 2 and 4 and type the answer here: