Ključna razlika – rano u odnosu na kasno uvezivanje
Early Binding i Late Binding su dva koncepta povezana sa polimorfizmom. Rano uvezivanje se događa u vrijeme kompajliranja, dok se kasno uvezivanje događa u vrijeme izvođenja. Ključna razlika između ranog i kasnog povezivanja je u tome što rano uvezivanje koristi informacije o klasi za rješavanje poziva metode dok kasno povezivanje koristi objekt za rješavanje poziva metode.
Programski jezici kao što je Java podržavaju objektno orijentirano programiranje (OOP). To je paradigma koja omogućava konstruisanje programa ili softvera koristeći objekte. Postoji više objekata u softveru. Ovi objekti su međusobno povezani i prenose poruke koristeći metode. Svaki objekat ima karakteristike i ponašanja. Karakteristike su opisane svojstvima ili atributima. Ponašanja su opisana korištenjem metoda. Objekt Student može imati karakteristike kao što su ime, starost i predstavljeni su svojstvima. Objekt Student može imati ponašanja kao što su proučavanje i čitanje, a oni su predstavljeni metodama. Jedan od glavnih stubova OOP-a je polimorfizam. Omogućava objektu da se ponaša na više načina. Rano uvezivanje i kasno uvezivanje su dva koncepta u polimorfizmu. Metode preopterećenja su vezane korišćenjem ranog vezivanja. Poništene metode su vezane korištenjem kasnog povezivanja.
Šta je rano uvezivanje?
U ranom povezivanju, informacije o klasi se koriste za rješavanje poziva metoda. Rano uvezivanje se događa u vrijeme kompajliranja. Poznato je i kao statičko vezivanje. U ovom procesu, povezivanje se događa prije nego što se program stvarno pokrene. Metode preopterećenja su vezane korišćenjem ranog vezivanja. Pogledajte program ispod.
Slika 01: Klasa obračuna
Slika 02: Glavni program za rano uvezivanje
Prema gore navedenom programu, klasa Calculation sadrži metodu sabiranja koja prihvata dve celobrojne vrednosti i drugu metodu sabiranja koja prihvata dve dvostruke vrednosti. U glavnom programu kreira se objekat tipa Kalkulacija. Kada se dodaju dva cijela broja metodi add, ona će pozvati metodu add koja prihvaća dva cijela broja. Prilikom prosljeđivanja dvije dvostruke vrijednosti metodi add, ona će pozvati metodu koja odgovara dvije dvostruke vrijednosti. Ovaj proces vezivanja se događa u vrijeme kompajliranja. Sve potrebne informacije su poznate prije runtimea, tako da povećavaju efikasnost programa i brzinu izvršavanja.
Šta je kasno uvezivanje?
U kasnom povezivanju, objekt se koristi za rješavanje poziva metode. Kasno uvezivanje se događa u vrijeme izvođenja. Poznato je i kao dinamičko vezivanje. U ovom procesu, vezivanje se dešava prilikom izvršavanja programa. Nadjašnjene metode su vezane korištenjem kasnog povezivanja. Pogledajte program ispod.
Slika 03: Klasa oblika
Slika 04: Klasa kruga
Slika 05: Klasa trougla
Slika 06: Glavni program za kasno uvezivanje
Prema gore navedenom programu, klasa Shape ima metodu crtanja. Klasa Circle i klasa Triangle proširuju klasu Shape. Stoga ove dvije klase mogu naslijediti atribute i metode klase Shape. Klasa oblika je osnovna klasa. Klase kruga i trougla su izvedene klase. Klasa Circle i klasa Triangle takođe imaju metodu crtanja sa sopstvenim implementacijama. Dakle, metoda crtanja u klasi Shape je nadjačana metodama crtanja izvedenih klasa.
U glavnom programu kreira se referentna varijabla s tipa Shape. U vrijeme kompajliranja, kompajler će uputiti samo metodu crtanja osnovne klase. Tokom vremena izvršavanja, različite metode crtanja će se izvršiti. Prvo, s će pokazati na objekt tipa Shape. Dakle, poziva se metoda crtanja klase Shape. Tada će s pokazivati na objekt tipa Circle i pozvati metodu crtanja klase Circle. Konačno, s će pokazivati na objekt tipa Trougao i pozvati metodu crtanja u klasi Triangle. Metode se pozivaju ovisno o objektima. Stoga se objekt koristi za rješavanje poziva metode u kasnom povezivanju. Informacije potrebne za vezivanje se daju u toku rada, tako da je brzina izvršenja sporija u poređenju sa ranim povezivanjem.
Koja je sličnost između ranog i kasnog uvezivanja?
I Early Binding i Late Binding su povezani sa polimorfizmom koji je stub OOP-a
Koja je razlika između ranog i kasnog uvezivanja?
Early Binding vs Late Binding |
|
Proces korištenja informacija o klasi za rješavanje poziva metode do kojeg dolazi u vrijeme kompajliranja naziva se Early Binding. | Proces korištenja objekta za rješavanje poziva metode koji se javlja u vrijeme izvođenja naziva se kasno povezivanje. |
Vrijeme vezivanja | |
Rano uvezivanje se dešava u vrijeme kompajliranja. | Kasno uvezivanje se dešava u vrijeme izvođenja. |
Funkcionalnost | |
Early Binding koristi informacije o klasi za rješavanje poziva metode. | Late Binding koristi objekat za rješavanje poziva metode. |
Sinonimi | |
Rano uvezivanje je poznato i kao statičko uvezivanje.. | Kasno uvezivanje je također poznato kao dinamičko uvezivanje. |
Pojava | |
Metode preopterećenja su vezane korišćenjem ranog povezivanja. | Poništene metode su vezane korišćenjem kasnog povezivanja. |
Brzina izvršenja | |
Brzina izvršenja je veća u ranom povezivanju. | Brzina izvršenja je niža u kasnom povezivanju. |
Sažetak – rano u odnosu na kasno uvezivanje
OOP se obično koristi za razvoj softvera. Jedan od glavnih stubova OOP-a je polimorfizam. Rano uvezivanje i kasno uvezivanje su povezane s tim. Rano uvezivanje se događa u vrijeme kompajliranja, dok se kasno uvezivanje događa u vrijeme izvođenja. Kod preopterećenja metode, vezivanje se dešava korišćenjem ranog vezivanja. U nadjačavanju metode, vezivanje se događa korištenjem kasnog povezivanja. Razlika između ranog i kasnog povezivanja je u tome što rano uvezivanje koristi informacije o klasi za rješavanje poziva metode dok kasno povezivanje koristi objekt za rješavanje poziva metode.