Prednosti i nedostaci objektno orijentiranog programiranja

Računalni kod. Duboko zeleni ekran

Većina modernih PC i mobilnih aplikacija koristi OOP tehnike.

Zasluga slike: SoulArt/iStock/Getty Images

Objektno orijentirani programski jezici kao što su C++, Java i Visual Basic razvili su računalni znanstvenici kako bi ubrzali programiranje i poboljšali kvalitetu softvera. OOP softverske tehnike razbijaju programe u funkcionalne blokove zvane objekti, čineći ih često potrebnim značajke kao što su kontrolni gumbi, upravljanje bazom podataka i matematika jednostavnija za korištenje i dijeljenje programeri. Međutim, prednosti dolaze s kompromisima kao što su dodatna složenost softvera i smanjene performanse.

Bolja produktivnost

OOP tehnike provode pravila na programeru koja joj, dugoročno gledano, pomažu da obavi više posla; gotovi programi rade bolje, imaju više značajki i lakši su za čitanje i održavanje. Programi koji ne koriste OOP obično su velike, neprekidne ploče teksta poput vrlo dugačkih poglavlja u knjizi. Kada programeri uskoče kako bi ga promijenili, tekst na kraju postaje neorganiziran i teže ga je pratiti. Nasuprot tome, OOP programeri uzimaju nove i postojeće softverske objekte i "spajaju" ih zajedno kako bi napravili nove programe. Budući da knjižnice objekata sadrže mnoge korisne funkcije, programeri ne moraju tako često iznova izmišljati kotač; više vremena odlazi na izradu novog programa.

Video dana

Niži troškovi programiranja

Posebno za veće projekte, OOP pomaže smanjiti troškove rada programiranja. Osoblje koje radi na projektu može razviti vlastitu biblioteku softverskih objekata, dopuštajući programerima da jednostavno koriste rad drugih i smanjujući sate potrebne za razvoj programa. Uz poboljšanu kvalitetu softvera, programeri troše manje vremena na popravljanje neispravnih programa, dodatno smanjujući troškove rada.

Strmija krivulja učenja

Da bi svladao OOP, početnik mora naučiti nove, apstraktne koncepte kao što su polimorfizam -- ponovno korištenje objekata uz dodavanje novih značajki u njih -- i inkapsulacija -- skrivanje dijelova internih podataka objekta radi poboljšanja sigurnosti -- niti jedna ideja nije pronađena u starijim stilovima programiranja. Ne samo da je za učenje ovih pojmova potrebno vrijeme, oni mogu biti previše složeni za mlađe buduće programere ili one koji programiraju samo povremeno.

Sporiji softver

Objektno orijentirani softver može uključivati ​​dodatni kod za održavanje koji nije potreban u drugim računalnim jezicima; računalo mora izvršiti dodatno programiranje, usporavajući vrijeme odgovora aplikacije. Za projekte u kojima je brzina važna, programeri mogu odlučiti napisati najkritičnije dijelove u ne-OOP jezicima kao što su asembler ili C, rezervirajući OOP kod za prozore ili gumbe -- područja u kojima objekti imaju jasan prednost.