Uvod u objektno orijentirano programiranje

1. 3. 2020.

Uvođenjem koncepta "objekta", programeri su mogli opisati strukturu softverskih sustava koristeći pojmove "stvarnog svijeta" i održavati sustave s milijunima linija koda, što je bilo nemoguće pri korištenju proceduralne paradigme. Proceduralno programiranje nije moglo osigurati odgovarajuću razinu razvoja i podrške za složene softverske sustave u bankarstvu, telekomunikacijama i dr područja djelovanja gdje zahtjevi za programe stalno postaju sve složeniji. Stil (paradigma) programiranja, koji se temelji na konceptu klase i objekta, razvijen je kao razvoj proceduralne paradigme koja je prestala biti učinkovita dok se složenost softverskih projekata razvijala i nazivala "objektno orijentirano programiranje" (OOP).

Povijest razvoja

Po prvi put se u jeziku Simula 67 počelo primjenjivati ​​objektno orijentirano programiranje, koje je imalo velik utjecaj na razvoj jezika kao što su Lisp i Smalltalk. No, najveći razvoj OOP-a bio je sredinom 90-ih, kada je stvoren C ++ “OOP classic”, čiji je rad s objektima usvojen u popularnim programskim okruženjima Delphi i VisualFoxPro. PLO se i dalje razvija, a među novim paradigmama može se identificirati aspektno orijentirana i subjektivno orijentirana paradigma. Svaki objektno orijentirani jezik proširuje osnovne koncepte OOP-a s jedinstvenim dodacima i proširenjima, ovisno o specifičnoj uporabi. U ovom ćemo članku razmotriti implementaciju OOP-a u Delphi programskom okruženju i jeziku PHP web razvoja.

Osnovni OOP koncepti

OOP paradigma se sastoji od tri osnovna pojma: enkapsulacija, polimorfizam i nasljeđivanje.

objektno orijentirano programiranje

Inkapsulacija (inkapsulacija)

Mehanizam kombiniranja koda i podataka unutar objekta, kao i njihova zaštita od vanjskih promjena. Unutar objekta, podaci i kod mogu biti otvoreni (javni) za pristup i izmjenu od strane drugih objekata i zatvoreni (privatni) za vanjske promjene.

objektno orijentirano programiranje delphi

Polimorfizam (polimorfizam)

Najvažniji element koncepta OOP-a, koji omogućuje korištenje jednog naziva za funkcije koje obavljaju slične akcije. U početku je teško razumjeti značenje polimorfizma, pa ćemo dati jednostavan primjer. U bilo kojem programskom jeziku za svaku vrstu brojeva, na primjer, u “klasičnom” C za pronalaženje modula broja, trebamo koristiti funkciju abs () za cijele brojeve, za long integer labs (), za brojeve s pomičnim zarezom fabs (). To dovodi do potrebe pamćenja sintakse skupa funkcija i dodatnog opterećenja memorije i procesora računala. Objektno-orijentirano programiranje, koristeći mehanizam polimorfizma, omogućuje vam da napišete svoju funkciju kako biste odredili modul modula () i koristiti ga u aritmetičkim izračunima, bez razmišljanja o tipu brojeva. Samo napišite u izrazu modul () i dobiti točan odgovor. Plus smanjenje programskog koda i opterećenja sustava. Drugi primjer polimorfizma prikazan je na slici - opća klasa "Krivulja" (Oblik) je "roditelj" za krug, pravokutnik i zvijezdu.

objektno orijentirano php programiranje

Naslijeđe (nasljeđe)

OOP mehanizam koji omogućuje objektu da (naslijedi) metode drugog objekta. Točnije, objekt prima (nasljeđuje) sva osnovna svojstva svog "pretka" i dodaje im metode svojstvene samo njemu. "Nasljednik" objekta će naslijediti metode dvaju objekata već, itd. Nasljeđivanje se također naziva hijerarhija klase. Korištenje nasljeđivanja olakšava upravljanje velikim količinama informacija i programskog koda. Zatim možete vidjeti kako objekti nasljeđuju zajednička svojstva od roditeljskog razreda "Car".

Objektno orijentirano programiranje - nasljeđivanje

Glavni elementi klasa i objekata u OOP-u

Svi jezici koji podržavaju objektno orijentirano programiranje imaju istu interpretaciju koncepta klase i objekta. Klasa - tip podataka za opisivanje svojstava i rada "pravog" objekta, kao što je bankovni račun. Objekt je zasebna instanca klase. Metoda - softverski kod koji mijenja ponašanje objekta ili njegovog stanja ovisno o vrijednosti njegovih svojstava. Modifikator pristupa - metoda koja dijeli elemente razreda na otvorena i zatvorena polja. Konstruktor je metoda koja se izvršava nakon inicijalizacije objekta i vraća ga u izvorno stanje. Destructor je metoda pozvana kada je objekt izbrisan. Dijagram pokazuje interakciju elemenata razreda.

Interakcija elemenata klase

OOP implementacija u Delphiju

U središtu razvojnog okruženja je podskup Pascalovog jezika s OOP elementima - Object Pascal. Delphi okruženje i jezik bio je prvo grafičko razvojno okruženje za MS Windows. Objektno-orijentirano programiranje delphi je skup standardnih apstraktnih klasa koje enkapsuliraju određene elemente Windows programa, kao što su grafičko sučelje, rad s RAM-om itd. Delphi je imao značajan utjecaj na razvoj svih objektno-orijentiranih jezika, posebno C #. za razvojno okruženje sustava Microsoft .NET. Najnovija verzija Delphija 8 radi samo s .NET-om.

Hijerarhija standardnih klasa Delphi

Hijerarhija klasa u Delphiju

TObject je "roditelj" svih Delphi klasa. Klasa osigurava sve svoje "potomke" uz podršku funkcija objektno-orijentiranog programiranja, a njegov konstruktor osigurava da se program pokreće i ispravno radi u sustavu Windows. TPersistent - daje objektima interakciju na razini prijenosa podataka. Ona prenosi podatkovne tokove i osigurava pristup Object Inspectoru. TComponent - omogućuje stvaranje bilo kakvih ne-vizualnih objekata i osigurava njihovu interakciju s cjelokupnim razvojnim okruženjem. Upravo ovaj omogućuje rad s objektima i programskim komponentama u vizualnom razvojnom okruženju. Njegov potomak TGraphicControl stvara različite elemente sučelja bez prozora, na primjer, grafičke pozadine, itd. TControl - svi objekti prikazani na zaslonu (prozori, popisi, gumbi, obrasci, itd.) Su njegovi potomci. Obuhvaća rad s funkcijama GUI Windows. TWinControl - omogućuje rad s prozorima programa. Njegov potomak TCustomControl vam omogućuje stvaranje kontrola kao što su uređivači teksta, popisi izbora.

Implementacija OOP-a u PHP-u

PHP je jedan od najpopularnijih jezika za web razvoj i izvorno je bio potpuno proceduralni programski jezik. Dakle, objektno orijentirano programiranje u php pojavilo se kasnije, počevši od četvrte verzije. Potreba da se podrže oba stilova programiranja - proceduralna i objektno orijentirana - dovela je do toga da su elementi OOP-a još uvijek dodatak, a ne temelj jezika. No, situacija se brzo mijenja prema objektu PHP. Verzija PHP 5 u potpunosti podržava sve elemente OOP-a, a programer ima potpunu slobodu stvaranja vlastitih klasa i objekata, za razliku od Delhija, gdje programer mora koristiti standardne klase na jedan ili drugi način sa svim mogućim nedostacima. Sintaksa PHP elemenata objekta nije teška za programere koji su prethodno radili na C ++ / # i Delphi.

Razvoj OOP-a

Paradigma objektno orijentiranog programiranja nastavlja se razvijati i koristi se u mnogim elementima softverskih sustava, na primjer, u specijaliziranim bazama podataka koji podržavaju model podataka o objektu, te u razvoju aplikacija za tablete i mobilne telefone. Među novim objektnim jezicima možemo razlikovati Python, koji se široko koristi za razvoj internetskih sustava, i Go, multifunkcionalni programski jezik od Googlea.