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 : Progettazione Software |