Avainero – varhainen vs myöhäinen sidonta
Varhainen sidonta ja myöhäinen sidonta ovat kaksi polymorfismiin liittyvää käsitettä. Early Binding tapahtuu käännösaikana, kun taas myöhäinen sidonta tapahtuu ajon aikana. Keskeinen ero Early Bindingin ja Late Bindingin välillä on, että Early Binding käyttää luokkatietoja menetelmäkutsujen ratkaisemiseen, kun taas Late Binding käyttää objektia menetelmäkutsujen ratkaisemiseen.
Ohjelmointikielet, kuten Java, tukevat Object Oriented Programming (OOP) -ohjelmointia. Se on paradigma, joka mahdollistaa ohjelman tai ohjelmiston rakentamisen objektien avulla. Ohjelmistossa on useita objekteja. Nämä objektit ovat yhteydessä toisiinsa ja välittävät viestejä menetelmien avulla. Jokaisella esineellä on ominaisuuksia ja käyttäytymistä. Ominaisuudet kuvataan ominaisuuksien tai attribuuttien avulla. Käyttäytymistä kuvataan menetelmin. Objektilla Opiskelija voi olla ominaisuuksia, kuten nimi, ikä ja ne esitetään ominaisuuksilla. Objektilla Opiskelija voi olla käyttäytymismalleja, kuten opiskelu ja lukeminen, ja ne esitetään menetelmillä. Yksi OOP:n tärkeimmistä pilareista on polymorfismi. Se mahdollistaa kohteen käyttäytymisen monin eri tavoin. Varhainen sidonta ja myöhäinen sidonta ovat kaksi käsitettä polymorfismissa. Ylikuormitusmenetelmät liimataan käyttämällä aikaista sidontaa. Ohitetut menetelmät yhdistetään käyttämällä myöhäistä sidontaa.
Mitä on varhainen sidonta?
Early Bindingissä luokkatietoja käytetään menetelmäkutsujen ratkaisemiseen. Varhainen sidonta tapahtuu käännöshetkellä. Se tunnetaan myös nimellä staattinen sidonta. Tässä prosessissa sidonta tapahtuu ennen kuin ohjelma todella suoritetaan. Ylikuormitusmenetelmät liimataan käyttämällä aikaista sidontaa. Katso alla olevaa ohjelmaa.
Kuva 01: Laskentaluokka
Kuva 02: Varhaisen sidonnan pääohjelma
Yllä olevan ohjelman mukaan Laskenta-luokka sisältää lisäysmenetelmän, joka hyväksyy kaksi kokonaislukuarvoa, ja toisen lisäysmenetelmän, joka hyväksyy kaksi kaksoisarvoa. Pääohjelmassa luodaan Laskenta-tyyppinen objekti. Kun välitetään kaksi kokonaislukua add-metodille, se käynnistää add-metodin, joka hyväksyy kaksi kokonaislukua. Kun kaksi kaksoisarvoa välitetään add-metodille, se kutsuu kahta kaksoisarvoa vastaavan menetelmän. Tämä sidontaprosessi tapahtuu käännösvaiheessa. Kaikki tarvittavat tiedot ovat tiedossa ennen ajonaikaa, joten se lisää ohjelman tehokkuutta ja suoritusnopeutta.
Mikä on myöhäinen sidonta?
Late Bindingissä objektia käytetään menetelmäkutsujen ratkaisemiseen. Myöhäinen sidonta tapahtuu suorituksen aikana. Se tunnetaan myös nimellä dynaaminen sidonta. Tässä prosessissa sidonta tapahtuu ohjelmaa suoritettaessa. Ohitetut menetelmät yhdistetään käyttämällä myöhäistä sidontaa. Katso alla olevaa ohjelmaa.
Kuva 03: Muotoluokka
Kuva 04: Ympyräluokka
Kuva 05: Kolmioluokka
Kuva 06: Pääohjelma myöhäiseen sidokseen
Yllä olevan ohjelman mukaan luokassa Shape on piirtomenetelmä. Luokka Ympyrä ja luokka Kolmio luokka laajentaa Shape-luokkaa. Siksi nämä kaksi luokkaa voivat periä Shape-luokan attribuutit ja menetelmät. Shape Class on perusluokka. Ympyrä- ja kolmioluokat ovat johdettuja luokkia. Luokilla Circle ja luokilla Triangle on myös piirustusmenetelmä omilla toteutuksillaan. Joten Shape-luokan piirtomenetelmä ohitetaan johdettujen luokkien piirtomenetelmillä.
Pääohjelmassa luodaan Shape-tyyppinen viitemuuttuja s. Käännöshetkellä kääntäjä viittaa vain perusluokan piirtomenetelmään. Suorituksen aikana suoritetaan erilaisia piirtomenetelmiä. Ensin s osoittaa Shape-tyypin objektiin. Joten Shape-luokan piirtomenetelmä vedetään. Sitten s osoittaa Circle-tyypin objektiin, ja se kutsuu Circle-luokan piirtomenetelmän. Lopuksi s osoittaa Triangle-tyypin objektiin, ja se käynnistää piirtomenetelmän Triangle-luokassa. Metodeja kutsutaan kohteista riippuen. Siksi objektia käytetään ratkaisemaan menetelmäkutsu myöhäisessä sidonnassa. Sitomiseen tarvittavat tiedot annetaan ajon aikana, joten suoritusnopeus on hitaampi verrattuna aikaiseen sidontaan.
Mikä on samank altaisuus varhaisen ja myöhäisen sidonnan välillä?
Sekä Early Binding että Late Binding liittyvät polymorfismiin, joka on OOP:n pilari
Mitä eroa on varhaisella ja myöhäisellä sidoksella?
Varhainen sidonta vs myöhäinen sidonta |
|
Prosessia, jossa luokkatietojen käyttäminen menetelmäkutsujen ratkaisemiseen käännöshetkellä tapahtuu, kutsutaan Early Bindingiksi. | Prosessia, jossa objektia käytetään ajon aikana tapahtuvan menetelmäkutsujen ratkaisemiseen, kutsutaan myöhäiseksi sidokseksi. |
Sidonta-aika | |
Varhainen sidonta tapahtuu käännösaikana. | Myöhäinen sidonta tapahtuu suoritusaikana. |
Toiminnot | |
Early Binding käyttää luokan tietoja menetelmäkutsujen ratkaisemiseen. | Late Binding käyttää objektia menetelmäkutsujen ratkaisemiseen. |
Synonyymit | |
Varhainen sidonta tunnetaan myös staattisena sidontana.. | Myöhäinen sidonta tunnetaan myös dynaamisena sidontana. |
Tapahtuma | |
Ylikuormitusmenetelmät sidotaan käyttämällä aikaista sidontaa. | Ohitetut menetelmät yhdistetään käyttämällä myöhäistä sidontaa. |
Suoritusnopeus | |
Suoritusnopeus on nopeampi varhaisessa sidonnassa. | Suoritusnopeus on alhaisempi myöhäisessä sidonnassa. |
Yhteenveto – varhainen vs myöhäinen sidonta
OOP:ta käytetään yleisesti ohjelmistokehitykseen. Yksi OOP:n pääpilareista on polymorfismi. Early Binding ja Late Binding liittyvät siihen. Varhainen sidonta tapahtuu käännösaikana, kun taas myöhäinen sidonta tapahtuu ajon aikana. Menetelmän ylikuormituksessa sidonta tapahtuu käyttämällä aikaista sidontaa. Menetelmän ohituksessa sidonta tapahtuu käyttämällä myöhäistä sidontaa. Ero Early Bindingin ja Late Bindingin välillä on, että Early Binding käyttää luokkatietoja menetelmäkutsujen ratkaisemiseen, kun taas Late Binding käyttää objektia menetelmäkutsujen ratkaisemiseen.