Peamine erinevus – varane ja hiline sidumine
Varajane sidumine ja hiline sidumine on kaks polümorfismiga seotud mõistet. Varajane sidumine toimub kompileerimise ajal, hiline sidumine aga käitusajal. Peamine erinevus varajase ja hilise sidumise vahel on see, et Early Binding kasutab meetodi kutsumise lahendamiseks klassiteavet, samas kui hiline sidumine kasutab meetodi kutsumise lahendamiseks objekti.
Programmeerimiskeeled, nagu Java, toetavad objektorienteeritud programmeerimist (OOP). See on paradigma, mis võimaldab objektide abil programmi või tarkvara konstrueerida. Tarkvaras on mitu objekti. Need objektid on omavahel ühendatud ja edastavad sõnumeid meetodite abil. Igal objektil on omadused ja käitumine. Tunnused on kirjeldatud omaduste või atribuutidega. Käitumist kirjeldatakse meetodite abil. Objektil Õpilane võivad olla sellised omadused nagu nimi, vanus ja neid esindavad omadused. Objektil Õpilane võib olla selliseid käitumisviise nagu uurimine ja lugemine ning neid esindavad meetodid. Üks OOP põhisammas on polümorfism. See võimaldab objektil käituda mitmel viisil. Varajane sidumine ja hiline sidumine on polümorfismis kaks mõistet. Ülekoormusmeetodid ühendatakse varajase sidumise abil. Alistatavad meetodid seotakse hilise sidumise abil.
Mis on varajane sidumine?
Early Bindingis kasutatakse klassiteavet meetodi kutsumise lahendamiseks. Varajane sidumine toimub kompileerimise ajal. Seda tuntakse ka staatilise sidumisena. Selles protsessis toimub sidumine enne, kui programm tegelikult töötab. Ülekoormusmeetodid ühendatakse varajase sidumise abil. Vaadake allolevat programmi.
Joonis 01: Arvutusklass
Joonis 02: Varajase sidumise põhiprogramm
Vastav alt ül altoodud programmile sisaldab arvutusklass liitmismeetodit, mis aktsepteerib kahte täisarvu väärtust, ja teist liitmismeetodit, mis aktsepteerib kahte topeltväärtust. Põhiprogrammis luuakse arvutus tüüpi objekt. Kahe täisarvu edastamisel lisamismeetodile käivitab see lisamismeetodi, mis aktsepteerib kahte täisarvu. Kahe topeltväärtuse edastamisel lisamismeetodile käivitab see kahele topeltväärtusele vastava meetodi. See sidumisprotsess toimub kompileerimise ajal. Kogu vajalik teave on teada enne käitusaega, nii et see suurendab programmi tõhusust ja täitmise kiirust.
Mis on hiline sidumine?
Hilises sidumises kasutatakse objekti meetodi kutsumise lahendamiseks. Hiline sidumine toimub käitusajal. Seda tuntakse ka kui dünaamilist sidumist. Selles protsessis toimub sidumine programmi täitmisel. Alistatavad meetodid seotakse hilise sidumise abil. Vaadake allolevat programmi.
Joonis 03: Kuju klass
Joonis 04: Ringi klass
Joonis 05: Kolmnurga klass
Joonis 06: Hilise sidumise põhiprogramm
Vastav alt ül altoodud programmile on klassil Shape joonistamismeetod. Klass Circle ja klass Kolmnurk klass laiendab Shape klassi. Seetõttu võivad need kaks klassi pärida Shape klassi atribuudid ja meetodid. Shape Class on baasklass. Ringi ja kolmnurga klassid on tuletatud klassid. Klassidel Circle ja klassis Triangle on ka joonistamismeetod oma rakendustega. Seega alistavad Shape klassi joonistusmeetodi tuletatud klasside joonistusmeetodid.
Põhiprogrammis luuakse Shape tüüpi viitemuutuja s. Kompileerimise ajal viitab kompilaator ainult baasklassi joonistamise meetodile. Käitusajal käivituvad erinevad joonistusmeetodid. Esiteks osutab s Shape tüüpi objektile. Seega käivitatakse Shape klassi joonistusmeetod. Seejärel osutab s Circle tüüpi objektile ja see kutsub esile Circle klassi joonistusmeetodi. Lõpuks osutab s Triangle tüüpi objektile ja kutsub esile joonistusmeetodi klassis Triangle. Meetodeid kutsutakse sõltuv alt objektidest. Seetõttu kasutatakse objekti hilise sidumise meetodi kutsumise lahendamiseks. Sidumiseks vajalik teave esitatakse käitamisajal, seega on täitmise kiirus aeglasem võrreldes varajase sidumisega.
Milline on varajase ja hilise sidumise sarnasus?
Nii varajane sidumine kui ka hiline sidumine on seotud polümorfismiga, mis on OOP tugisammas
Mis vahe on varajasel ja hilisel sidumisel?
Varajane sidumine vs hiline köitmine |
|
Klassi teabe kasutamist kompileerimise ajal toimuva meetodi kutsumise lahendamiseks nimetatakse varajaseks sidumiseks. | Protsessi, mille käigus objekti kasutatakse käitusajal toimuva meetodi kutsumise lahendamiseks, nimetatakse hiliseks sidumiseks. |
Köitmise aeg | |
Varajane sidumine toimub kompileerimise ajal. | Hiline sidumine toimub käitamisajal. |
Funktsionaalsus | |
Early Binding kasutab meetodi kutsumise lahendamiseks klassiteavet. | Late Binding kasutab objekti meetodi kutsumise lahendamiseks. |
Sünonüümid | |
Early Binding on tuntud ka kui staatiline köitmine.. | Hiline köitmine on tuntud ka kui dünaamiline köitmine. |
Esinemine | |
Ülekoormusmeetodid on ühendatud varajase sidumise abil. | Alustatud meetodid ühendatakse hilise sidumise abil. |
Täitmise kiirus | |
Varasemas sidumises on täitmiskiirus kiirem. | Hilise köitmise puhul on täitmiskiirus väiksem. |
Kokkuvõte – varane vs hiline köitmine
OOP-i kasutatakse tavaliselt tarkvara arendamiseks. Üks OOP põhisammas on polümorfism. Varajane sidumine ja hiline sidumine on sellega seotud. Varajane sidumine toimub kompileerimise ajal, hiline sidumine aga käitusajal. Meetodi ülekoormuse korral toimub sidumine varase sidumise abil. Meetodi alistamise korral toimub sidumine hilist sidumist kasutades. Varajase ja hilise sidumise erinevus seisneb selles, et Early Binding kasutab meetodi kutsumise lahendamiseks klassiteavet, samas kui hiline sidumine kasutab meetodi kutsumise lahendamiseks objekti.