Documente Academic
Documente Profesional
Documente Cultură
Tipuri
Noţiunea de tip derivă din limbajele care implementează tipuri abstracte de date. Un tip
caracterizează comportamentul instanţelor sale prin descrierea operaţiilor care pot manipula astfel
de obiecte. Din acest punct de vedere, tipurile clasifică obiectele în concordanţă cu
implementarea asociată. Tipurile nu sunt altceva decât mulţimi de obiecte.
Fiecare tip are o implementare corespunzătoare care, de cele mai multe ori, nu este
altceva decât o clasă cu acelaşi nume. Tipul corespunde unei vederi externe, în timp ce
implementarea descrie modul în care obiectele de acest tip sunt reprezentate şi modul în care
fiecare operaţie este implementată în termenii acestei reprezentări.
Interfaţa clasei conţine, în mod uzual, mai multe funcţii decât interfaţa tipului
corespunzător. Acestea sunt necesare în vederea implementării vederilor externe ale tipului.
În concluzie, specificaţiile de tipuri sunt vederi externe ale unui tip dat, care descriu ce
anume este reprezentat, în timp ce implementarea unui tip, deci a unei clase, este o vedere internă
ce descrie modul în care sunt reprezentate obiectele de tipul respectiv şi modul în care sunt
implementate operaţiile în termenii acestei reprezentări.
Subtipuri
În general specificarea tipurilor se face fără a fi necesară utilizarea altor tipuri. Cu toate
acestea, există relaţii naturale, stabilite între majoritatea tipurilor. Una dintre ele este subtipizarea,
obţinându-se astfel subtipurile. Spunem că un tip T1 este subtip al tipului T2 dacă fiecare instanţă
a tipului T1 este o instanţă a tipului T2. T2 se numeşte supertip al lui T1. Această definiţie
presupune că o instanţă a tipului T1 poată fi utilizată oriunde, o operaţie oarecare aşteaptă o
instanţă a tipului T2, de exemplu tipul Automobil este un subtip al tipului Vehicul.
Posibilitatea de a utiliza instanţe ale subtipurilor în operaţii în care sunt aşteptate instanţe
ale supertipurilor acestora are consecinţe în dezvoltarea software utilizând limbajele orientate
spre obiecte.
Deoarece subtipizarea este definită în termenii comportamentului, se poate vedea această
relaţie ca o ierarhi-zare comportamentală. Cum este şi firesc, în cadrul unei astfel de ierarhii, este
posibil ca implementarea operaţiilor unui supertip să se realizeze în mod diferit faţă de
implementarea celor asociate subtipului.
Procesul de subtipizare este utilizat în organizarea tipurilor într-o dezvoltare a unui sistem.