Avantajele și dezavantajele programării orientate pe obiecte

Cod computer. Ecran verde intens

Cele mai multe aplicații moderne pentru PC și mobile folosesc tehnici OOP.

Credit imagine: SoulArt/iStock/Getty Images

Limbajele de programare orientată pe obiecte precum C++, Java și Visual Basic au fost dezvoltate de oamenii de știință în informatică pentru a accelera programarea și pentru a îmbunătăți calitatea software-ului. Tehnicile software OOP descompun programele în blocuri funcționale numite obiecte, făcându-le frecvent necesare funcții precum butoanele de control, gestionarea bazei de date și matematica mai ușor de utilizat și de partajat programatori. Cu toate acestea, avantajele vin cu compromisuri, cum ar fi complexitatea adăugată a software-ului și performanța redusă.

Productivitate mai bună

Tehnicile OOP impun reguli pentru un programator care, pe termen lung, îl ajută să lucreze mai mult; programele terminate funcționează mai bine, au mai multe funcții și sunt mai ușor de citit și întreținut. Programele care nu folosesc OOP tind să fie bucăți mari și continue de text, ca niște capitole foarte lungi dintr-o carte. Când programatorii intervin pentru a-l schimba, textul devine în cele din urmă dezorganizat și mai greu de urmărit. În schimb, programatorii POO preiau obiecte software noi și existente și le „împletesc” pentru a crea programe noi. Deoarece bibliotecile de obiecte conțin multe funcții utile, dezvoltatorii de software nu trebuie să reinventeze roata la fel de des; mai mult din timpul lor este dedicat realizării noului program.

Videoclipul zilei

Costuri mai mici de programare

În special pentru proiectele mai mari, OOP ajută la reducerea costului forței de muncă de programare. Personalul care lucrează la un proiect își poate dezvolta propria bibliotecă de obiecte software, permițând programatorilor să folosească cu ușurință munca celuilalt și reducând orele necesare dezvoltării programelor. Cu o calitate îmbunătățită a software-ului, dezvoltatorii petrec mai puțin timp reparând programele care funcționează defectuos, reducând și mai mult costurile cu forța de muncă.

Curbă de învățare mai abruptă

Pentru a stăpâni OOP, un începător trebuie să învețe concepte noi, abstracte, cum ar fi polimorfism -- reutilizarea obiectelor în timp ce le adăugați noi caracteristici -- și încapsulare -- ascunderea unor părți ale datelor interne ale unui obiect pentru a îmbunătăți securitatea -- niciuna dintre idei nu se găsește în stilurile mai vechi de programare. Nu numai că aceste concepte necesită timp pentru a fi învățate, ci pot fi prea complexe pentru viitorii programatori mai tineri sau pentru cei care programează doar ocazional.

Software mai lent

Software-ul orientat pe obiecte poate implica un cod suplimentar de menaj care nu este necesar în alte limbaje de calculator; computerul trebuie să execute programarea suplimentară, încetinind timpul de răspuns al unei aplicații. Pentru proiectele în care viteza este importantă, programatorii pot alege să scrie cele mai critice părți în timp în non-OOP limbaje precum assembler sau C, rezervând codul OOP pentru ferestre sau butoane -- zone în care obiectele au o claritate avantaj.