Se afișează postările cu eticheta procedurala. Afișați toate postările
Se afișează postările cu eticheta procedurala. Afișați toate postările

duminică, 7 septembrie 2025

Programarea Orientată spre Obiecte

Ca urmare a dezvoltării aplicațiilor software se impune o organizare cât mai eficientă a codului sursă astfel încât acesta să fie mai ușor de întreținut și înțeles.

Dea lungul timpului au fost dezvoltate mai multe tehnici de organizare a codului sursă:

a) Programarea nestructurată
  • Date și instrucțiunile se găsesc în programul principal, într-o unitate de compilare;
  • Implică utilizarea excesivă a instrucțiunilor "goto" pentru a transfera controlul de la o secțiune a codului la alta. Aceasta poate duce la crearea unor structuri de control dificil de urmărit și de înțeles.
  • Lipsesc structuri de control clare, precum bucle și condiții, care sunt fundamentale în tehnicile noi de organizare a codului;
  • Cu cât codul devine mai lung cu atât mai greu este de întreținut;
  • Mult cod duplicat;
Exemple: Assembler, Fortran, Basic, Cobol, ș.a

❗ Este important să subliniem că aceste limbaje nu erau neapărat proiectate pentru a încuraja programarea nestructurată, ci mai degrabă reflectau practicile de dezvoltare din perioadele timpurii ale informaticii, când conceptele de programare structurată nu erau încă pe deplin înțelese și adoptate. Cu timpul, oamenii au recunoscut avantajele programării structurate și au dezvoltat limbaje și practici care să promoveze o abordare mai clară și ușor de înțeles a dezvoltării software.

b) Programarea structurată

  • Utilizarea instrucțiunilor de control de flux precum bucle (for, while), condiționale (if, else), și structuri de selecție (switch) pentru a organiza logica programului.
  • Minimizarea utilizării instrucțiunilor de salt necontrolate ("goto") pentru a preveni crearea de fluxuri de control haotice și greu de urmărit.
  • Își propune să creeze programe mai ușor de înțeles, de întreținut și de extins, contribuind astfel la eficiența și calitatea dezvoltării software.
Exemple: C, C++, Pascal, Modula-2, Phyton, ș.a

c) Programarea procedurală
  • Se bazează pe noțiunea de subprogram ( proceduri, funcții) ;
  • Codul este mai bine organizat cu o funcționalitate mai bine precizată;
  • Codul devine mai complicat însă poate fi reutilizat;
  • Modificarea subprogramelor nu afectează restul programului;
Exemple: C, C++, Pascal, Fortran, Algol, ș.a

d) Programarea modulară
  • A apărut în urma creșterii dimensiunilor programelor, iar simpla organizare a codului sub formă de proceduri nu mai era eficientă;
  • Implică împărțirea unui sistem software mare și complex în module mai mici și independente ce permit rezolvarea problemelor dintr-un anumit domeniu;
  • Fiecare modul are o interfață bine definită care specifică cum poate fi utilizat de către alte module. Aceasta include declarații de funcții, tipuri de date și alte detalii necesare pentru a interacționa cu modulul.
  • Îmbunătățește lucrul cu reutilizarea codului;
  • Echipele de dezvoltare pot lucra independent la diferite module, reducând dependențele și facilitând dezvoltarea paralelă.
  • Testarea modulelor în mod separat este mai ușor de realizat, ceea ce contribuie la identificarea și remedierea erorilor mai rapid.
Exemple: C, C++, Pascal, Python, Modula2, Ada, ș.a

e) Programarea orientată spre obiecte
  • Tendință nouă de programare;
  • Modelează obiecte din lumea reală;
  • Programele sunt organizate ca colecții de obiecte ce cooperează între ele;
  • Detaliile și comportamentul obiectelor sunt păstrate în clase;
  • Programele sunt mult mai complexe și ușor de întreținut și modificat;
  • Simplifică lucrul în echipă la un program;
  • Se bazează pe 4 principii: încapsulare, moștenire, polimorfism, abstractizare;
Exemple: C++, Simula, Smalltalk, Java, ș.a


Deci, POO este un stil de programare în care programele sunt organizate ca şi colecții de obiecte cooperante, fiecare dintre ele reprezentând o instanță a unei clase, iar clasele sunt membre ale unei ierarhii de clase între care există relații de moștenire și respectă principiile POO.