Objektorienteeritud programmeerimise eelised ja puudused

Arvuti kood. Sügavroheline ekraan

Enamik kaasaegseid arvuti- ja mobiilirakendusi kasutavad OOP-tehnikaid.

Pildi krediit: SoulArt/iStock/Getty Images

Objektorienteeritud programmeerimiskeeled, nagu C++, Java ja Visual Basic, töötasid arvutiteadlased välja programmeerimise kiirendamiseks ja tarkvara kvaliteedi parandamiseks. OOP-tarkvaratehnikad jagavad programmid funktsionaalseteks plokkideks, mida nimetatakse objektideks, mistõttu on neid sageli vaja funktsioone, nagu juhtnupud, andmebaasihaldus ja matemaatika, on lihtsam kasutada ja omavahel jagada programmeerijad. Eelised kaasnevad aga kompromissidega, nagu tarkvara keerukus ja vähenenud jõudlus.

Parem tootlikkus

OOP-tehnikad jõustavad programmeerijale reegleid, mis pikemas perspektiivis aitavad tal rohkem tööd teha; valmis programmid töötavad paremini, neil on rohkem funktsioone ning neid on lihtsam lugeda ja hooldada. Programmid, mis ei kasuta OOP-i, on tavaliselt suured pidevad tekstitahvlid, nagu raamatus väga pikad peatükid. Kui programmeerijad selle muutmiseks sekkuvad, muutub tekst lõpuks korrastatuks ja seda on raskem jälgida. Seevastu OOP programmeerijad võtavad uusi ja olemasolevaid tarkvaraobjekte ning "õmblevad" need kokku, et luua uusi programme. Kuna objektiteegid sisaldavad palju kasulikke funktsioone, ei pea tarkvaraarendajad nii sageli jalgratast leiutama; rohkem aega kulub uue programmi tegemisele.

Päeva video

Madalamad programmeerimiskulud

Eriti suuremate projektide puhul aitab OOP vähendada programmeerimistööjõukulusid. Projekti kallal töötavad töötajad saavad välja töötada oma tarkvaraobjektide raamatukogu, võimaldades programmeerijatel üksteise tööd hõlpsalt kasutada ja lühendades programmide arendamiseks vajalikke tunde. Tänu täiustatud tarkvarakvaliteedile kulutavad arendajad vähem aega tõrgeteta programmide parandamisele, mis vähendab veelgi tööjõukulusid.

Järsem õppimiskõver

OOP valdamiseks peab algaja õppima uusi abstraktseid mõisteid, nagu polümorfism -- objektide taaskasutamine, lisades neile uusi funktsioone -- ja kapseldamine - objekti siseandmete osade peitmine turvalisuse parandamiseks - kumbagi ideed ei leidu vanemates programmeerimisstiilides. Nende kontseptsioonide õppimiseks ei kulu mitte ainult aega, vaid need võivad olla liiga keerulised noortele tulevastele programmeerijatele või neile, kes programmeerivad ainult aeg-ajalt.

Aeglasem tarkvara

Objektorienteeritud tarkvara võib sisaldada täiendavat majapidamiskoodi, mis pole teistes arvutikeeltes vajalik; arvuti peab täitma täiendava programmeerimise, aeglustades rakenduse reaktsiooniaega. Projektide puhul, kus kiirus on oluline, võivad programmeerijad kirjutada kõige ajakriitilisemad osad mitte-OOP-vormingus keeled nagu assembler või C, reserveerivad OOP-koodi akendele või nuppudele – alad, kus objektidel on selge eelis.