Strukturirano programiranje nasuprot objektno orijentiranom programiranju
Objektno orijentirano programiranje (OOP) i strukturirano programiranje dvije su paradigme programiranja. Paradigma programiranja temeljni je stil računalnog programiranja. Paradigme programiranja razlikuju se po tome kako je svaki element programa predstavljen i kako su definirani koraci za rješavanje problema. Kao što naziv sugerira, OOP se fokusira na predstavljanje problema pomoću objekata iz stvarnog svijeta i njihovog ponašanja, dok se strukturirano programiranje bavi organiziranjem programa u logičku strukturu.
Što je strukturirano programiranje?
Pretpostavlja se da je godina rođenja strukturnog programiranja 1970. Strukturirano programiranje smatra se podskupom imperativnog programiranja. Strukturirani program sastoji se od jednostavnih struktura toka programa, koje su hijerarhijski organizirane. To su niz, odabir i ponavljanje. Niz je poredak izjava. Odabir znači odabir naredbe iz skupa naredbi na temelju trenutnog stanja programa (za npr. korištenje if naredbi), a ponavljanje znači izvršavanje naredbe dok se ne postigne određeno stanje (za npr. korištenje for ili while naredbi). ALGOL, Pascal, Ada i PL/I neki su od strukturiranih programskih jezika koji se danas koriste.
Što je objektno orijentirano programiranje?
U OOP-u fokus je na razmišljanju o problemu koji treba riješiti u smislu elemenata stvarnog svijeta i predstavljanju problema u smislu objekata i njihovog ponašanja. Klase prikazuju apstraktne prikaze objekata stvarnog svijeta. Klase su poput nacrta ili predložaka koji okupljaju slične stavke ili stvari koje se mogu zajedno grupirati. Klase imaju svojstva koja se nazivaju atributi. Atributi su implementirani kao globalne varijable i varijable instance. Metode u klasama predstavljaju ili definiraju ponašanje tih klasa. Metode i atributi klasa nazivaju se članovima klase. Instanca klase naziva se objekt. Prema tome, objekt je struktura podataka koja vrlo nalikuje objektu iz stvarnog svijeta.
Postoji nekoliko važnih OOP koncepata kao što su apstrakcija podataka, enkapsulacija, polimorfizam, slanje poruka, modularnost i nasljeđivanje. Tipično, enkapsulacija se postiže postavljanjem atributa privatnim, dok se stvaraju javne metode koje se mogu koristiti za pristup tim atributima. Nasljeđivanje omogućuje korisniku da proširi klase (zvane podklase) iz drugih klasa (zvane super klase). Polimorfizam omogućuje programeru da zamijeni objekt klase umjesto objekta njegove super klase. Tipično, imenice koje se nalaze u definiciji problema izravno postaju klase u programu. I slično, glagoli postaju metode. Neki od najpopularnijih OOP jezika su Java i C.
Koja je razlika između strukturiranog programiranja i objektno orijentiranog programiranja?
Ključna razlika između Strukturiranog programiranja i OOP-a je u tome što je fokus Strukturiranog programiranja strukturiranje programa u hijerarhiju potprograma, dok je fokus OOP-a rastavljanje programskog zadatka na objekte koji enkapsuliraju podatke i metode. OOP se smatra fleksibilnijim od strukturiranog programiranja, jer OOP odvaja program u mrežu podsustava umjesto da program strukturira u hijerarhiji. Iako strukturiranje pruža određenu jasnoću, mala promjena u vrlo velikom strukturiranom programu može uzrokovati efekt valova mijenjanja više potprograma.