Prednosti in slabosti objektno usmerjenega programiranja

Računalniška koda. Globoko zeleni zaslon

Večina sodobnih računalniških in mobilnih aplikacij uporablja OOP tehnike.

Zasluga slike: SoulArt/iStock/Getty Images

Računalniški znanstveniki so razvili objektno usmerjene programske jezike, kot so C++, Java in Visual Basic, da bi pospešili programiranje in izboljšali kakovost programske opreme. OOP programske tehnike razbijejo programe v funkcionalne bloke, imenovane objekti, zaradi česar so pogosto potrebni funkcije, kot so nadzorni gumbi, upravljanje baze podatkov in matematika, ki je enostavnejša za uporabo in skupno rabo programerji. Vendar pa prednosti prihajajo s kompromisi, kot so dodana kompleksnost programske opreme in zmanjšana zmogljivost.

Boljša produktivnost

Tehnike OOP programerju uveljavljajo pravila, ki ji na dolgi rok pomagajo opraviti več dela; končni programi delujejo bolje, imajo več funkcij in jih je lažje brati in vzdrževati. Programi, ki ne uporabljajo OOP, so ponavadi velike, neprekinjene plošče besedila, kot so zelo dolga poglavja v knjigi. Ko programerji vstopijo, da ga spremenijo, besedilo sčasoma postane neorganizirano in težje slediti. Nasprotno pa OOP programerji vzamejo nove in obstoječe objekte programske opreme in jih "zšijo" skupaj, da naredijo nove programe. Ker knjižnice objektov vsebujejo številne uporabne funkcije, razvijalcem programske opreme ni treba tako pogosto znova izumljati kolesa; več časa namenjajo izdelavi novega programa.

Video dneva

Nižji stroški programiranja

Zlasti pri večjih projektih OOP pomaga zmanjšati stroške dela programiranja. Osebje, ki dela na projektu, lahko razvije lastno knjižnico programskih objektov, kar omogoča programerjem, da enostavno uporabljajo delo drug drugega in skrajšajo ure, potrebne za razvoj programov. Z izboljšano kakovostjo programske opreme razvijalci porabijo manj časa za odpravljanje napak v delovanju programov, kar dodatno zmanjša stroške dela.

Strmejša krivulja učenja

Za obvladovanje OOP se mora začetnik naučiti novih, abstraktnih konceptov, kot je npr polimorfizem -- ponovna uporaba predmetov, medtem ko jim dodajate nove funkcije -- in inkapsulacija – skrivanje delov notranjih podatkov objekta za izboljšanje varnosti – nobene od teh idej ni mogoče najti v starejših stilih programiranja. Ne samo, da je za učenje teh konceptov potreben čas, ampak so lahko preveč zapleteni za mlajše potencialne programerje ali tiste, ki programirajo le občasno.

Počasnejša programska oprema

Objektno usmerjena programska oprema lahko zahteva dodatno gospodinjsko kodo, ki v drugih računalniških jezikih ni potrebna; računalnik mora izvesti dodatno programiranje, kar upočasni odzivni čas aplikacije. Za projekte, kjer je hitrost pomembna, se lahko programerji odločijo, da bodo časovno najbolj kritične dele napisali v ne-OOP jezike, kot sta zbirnik ali C, rezerviranje OOP kode za okna ali gumbe – področja, v katerih imajo predmeti jasno prednost.