Uvod v objektno usmerjeno programiranje

1. 3. 2020

Z uvedbo koncepta "predmeta" so razvijalci lahko opisali strukturo sistemov programske opreme, ki uporabljajo izraze "resničnega sveta" in vzdrževali sisteme z milijoni vrstic kode, kar je bilo nemogoče pri uporabi postopkovne paradigme. Procesno načrtovanje ne more zagotoviti ustrezne ravni razvoja in podpore za kompleksne programske sisteme v bančništvu, telekomunikacijah in drugih področjih dejavnosti kjer zahteve za programe nenehno postajajo vse bolj zapletene. Slog (paradigma) programiranja, ki temelji na konceptu razreda in predmeta, je bil razvit kot razvoj procesne paradigme, ki je prenehala učinkovati, ko se je razvila kompleksnost projektov programske opreme in se je imenovala »objektno usmerjeno programiranje« (OOP).

Razvojna zgodovina

V jeziku Simula 67 se je prvič začel uporabljati objektno usmerjeno programiranje, ki je imelo velik vpliv na razvoj jezikov, kot sta Lisp in Smalltalk. Največji razvoj OOP-a pa je bil sredi devetdesetih, ko je nastal C ++ “OOP classic”, katerega delo s predmeti je prevzelo priljubljeno programsko okolje Delphi in VisualFoxPro. PLO se še naprej razvija in med novimi paradigmami je mogoče opredeliti aspektno usmerjeno in predmetno usmerjeno paradigmo. Vsak objektno usmerjen jezik razširja osnovne koncepte OOP-a z edinstvenimi dodatki in razširitvami, odvisno od specifične uporabe. V tem članku bomo pregledali implementacijo OOP-a v programskem okolju Delphi in jeziku PHP za razvoj spletnih strani.

Osnovni koncepti OOP

OOP paradigma je sestavljena iz treh osnovnih pojmov: inkapsulacija, polimorfizem in dedovanje.

objektno usmerjeno programiranje

Inkapsulacija

Mehanizem združevanja kode in podatkov znotraj objekta ter njihova zaščita pred zunanjimi spremembami. Znotraj objekta so lahko podatki in koda odprti (javni) za dostop in spreminjanje drugih objektov ter zaprti (zasebni) za zunanje spremembe.

objektno orientirano programiranje delphi

Polimorfizem (polimorfizem)

Najpomembnejši element koncepta OOP, ki omogoča uporabo enega samega imena za funkcije, ki opravljajo podobna dejanja. Sprva je težko razumeti pomen polimorfizma, zato dajemo enostaven primer. V vsakem programskem jeziku za vsako vrsto številk, na primer v »klasičnem« C, da bi našli modul števila, moramo uporabiti funkcijo abs () za cela števila, za dolge celoštevilske laboratorije (), za številke s plavajočo vejico (). To vodi do potrebe, da si zapomnite skladnjo niza funkcij in dodatno obremenitev pomnilnika in procesorja računalnika. Objektno usmerjeno programiranje, ki uporablja mehanizem polimorfizma, vam omogoča, da napišete svojo funkcijo, da določite modul modula () in ga uporabite v aritmetičnih izračunih, ne da bi razmišljali o vrsti številk. Samo vpišite izraz modul () in dobite pravilen odgovor. Plus zmanjšanje programske kode in obremenitve sistema. Drug primer polimorfizma je prikazan na sliki - splošni razred "krivulja" (oblika) je "starš" za krog, pravokotnik in zvezdo.

objektno usmerjeno programiranje php

Dedovanje

OOP mehanizem, ki omogoča objektu, da ima (podeduje) metode drugega objekta. Natančneje, objekt sprejema (podeduje) vse osnovne lastnosti svojega "prednika" in jim dodaja metode, ki so mu značilne samo. "Naslednik" objekta bo podedoval metode dveh objektov, itd. Dedovanje se imenuje tudi hierarhija razredov. Uporaba dedovanja omogoča preprosto upravljanje velikih količin informacij in programske kode. Nato lahko vidite, kako predmeti podedujejo skupne lastnosti iz nadrejenega razreda "Avto".

Objektno usmerjeno programiranje - dedovanje

Glavni elementi razredov in objektov v OOP

Vsi jeziki, ki podpirajo objektno usmerjeno programiranje, imajo enako razlago koncepta razreda in objekta. Razred - podatkovni tip za opis lastnosti in delovanja »pravega« predmeta, kot je bančni račun. Objekt je ločen primerek razreda. Metoda - programska koda, ki spreminja obnašanje objekta ali njegovega stanja glede na vrednost njegovih lastnosti. Modifikator dostopa - metoda, ki ločuje elemente razreda na odprta in zaprta polja. Konstruktor je metoda, ki se izvede najprej po inicializaciji objekta in ga vrne v prvotno stanje. Destructor je metoda, ki se pokliče, ko je predmet izbrisan. Diagram prikazuje interakcijo elementov razreda.

Interakcija elementov razreda

OOP implementacija v Delphiju

V središču razvojnega okolja je podskupina Pascalovega jezika z OOP elementi - Object Pascal. Delphi okolje in jezik je bilo prvo grafično razvojno okolje za MS Windows. Objektno usmerjeno programiranje delphi je niz standardnih abstraktnih razredov, ki vsebujejo nekatere elemente programa Windows, kot je grafični vmesnik, delo z RAM-om itd. Delphi je pomembno vplivala na razvoj vseh objektno usmerjenih jezikov, zlasti C #. za razvojno okolje Microsoft .NET. Najnovejša različica Delphija 8 deluje samo z .NET.

Hierarhija standardnih razredov Delphi

Hierarhija razredov v Delphiju

TObject je "starš" vseh razredov Delphi. Razred zagotavlja vse svoje "potomce" s podporo funkcij objektno usmerjenega programiranja, njegov konstruktor pa zagotavlja, da se program zažene in pravilno deluje v sistemu Windows. TPersistent - omogoča objektom interakcijo na ravni tokov prenosa podatkov. Prenaša podatkovne tokove in omogoča dostop do inšpektorja objektov. TComponent - omogoča ustvarjanje nevidnih predmetov in zagotavlja njihovo interakcijo s celotnim razvojnim okoljem. To je ta, ki omogoča delo s predmeti in programskimi komponentami v vizualnem razvojnem okolju. Njegov naslednik TGraphicControl ustvari različne elemente vmesnika brez oken, na primer grafično ozadje itd. TControl - vsi predmeti, prikazani na zaslonu (okna, seznami, gumbi, obrazci itd.) So njegovi potomci. Vključuje delo z funkcijami GUI Windows TWinControl - zagotavlja delo z okni programa. Njegov naslednik TCustomControl vam omogoča, da ustvarite kontrole, kot so urejevalniki besedil, seznami izbire.

Izvajanje OOP v PHP

PHP je eden izmed najbolj priljubljenih jezikov za razvoj spletnih strani in je bil prvotno popolnoma proceduralni programski jezik. Zato se je objektno usmerjeno programiranje v php pojavilo kasneje, začenši s četrto različico. Potreba po podpori obeh stilov programiranja - postopkovnih in objektno usmerjenih - je privedla do dejstva, da so elementi OOP še vedno dodatek, ne podlaga za jezik. Toda položaj se hitro spreminja v smeri predmeta PHP. Različica PHP 5 v celoti podpira vse elemente OOP, razvijalec pa ima popolno svobodo pri ustvarjanju lastnih razredov in objektov, za razliko od Delhija, kjer mora razvijalec uporabiti standardne razrede na tak ali drugačen način z vsemi možnimi slabostmi. Skladnja objektnih elementov PHP ni težavna za programerje, ki so prej delali na C ++ / # in Delphi.

Razvoj OOP

Objektno usmerjena programska paradigma se še naprej razvija in se uporablja v mnogih elementih sistemov programske opreme, na primer v specializiranih bazah podatkov, ki podpirajo model podatkov o objektih, in pri razvoju aplikacij za tablete in mobilne telefone. Med novimi predmetnimi jeziki lahko ločimo Python, ki se pogosto uporablja za razvoj internetnih sistemov, in Go, Googlov večnamenski programski jezik.