Klíčový rozdíl - Early vs Late Binding
Včasná vazba a pozdní vazba jsou dva pojmy související s polymorfismem. K včasné vazbě dochází v době kompilace, zatímco k pozdní vazbě dochází za běhu. Klíčový rozdíl mezi Early a Late Binding spočívá v tom, že Early Binding používá k vyřešení volání metody informace o třídě, zatímco Late Binding používá k vyřešení volání metody objekt.
Programovací jazyky, jako je Java, podporují objektově orientované programování (OOP). Jedná se o paradigma, které umožňuje konstrukci programu nebo softwaru pomocí objektů. V softwaru je více objektů. Tyto objekty jsou navzájem propojeny a předávají zprávy pomocí metod. Každý objekt má vlastnosti a chování. Vlastnosti jsou popsány vlastnostmi nebo atributy. Chování je popsáno pomocí metod. Objekt Student může mít vlastnosti jako jméno, věk a jsou reprezentovány vlastnostmi. Objekt Student může mít chování, jako je studium a čtení, a jsou reprezentovány metodami. Jedním z hlavních pilířů OOP je polymorfismus. Umožňuje objektu chovat se několika způsoby. Včasná vazba a pozdní vazba jsou dva pojmy v polymorfismu. Metody přetížení jsou spojeny pomocí časné vazby. Přepsané metody jsou spojeny pomocí pozdní vazby.
OBSAH
1. Přehled a klíčový rozdíl
2. Co je časná vazba
3. Co je pozdní vazba
4. Podobnosti mezi časnou a pozdní vazbou
5. Porovnání vedle sebe - časná vs. pozdní vazba v tabulkové formě
6. Shrnutí
Co je to Early Binding?
V Early Binding se informace o třídě používají k vyřešení volání metody. K včasné vazbě dochází v době kompilace. Je také známá jako statická vazba. V tomto procesu dojde k vazbě před spuštěním programu. Metody přetížení jsou spojeny pomocí časné vazby. Viz níže uvedený program.
Obrázek 01: Třída výpočtu
Obrázek 02: Hlavní program včasné vazby
Podle výše uvedeného programu obsahuje třída Výpočet metodu přidání, která přijímá dvě celočíselné hodnoty a další metodu přidání, která přijímá dvě dvojité hodnoty. V hlavním programu je vytvořen objekt typu Výpočet. Při předávání dvou celých čísel do metody add vyvolá metodu add, která přijímá dvě celá čísla. Při předávání dvou dvojitých hodnot metodě add vyvolá metodu odpovídající dvěma dvojitým hodnotám. K tomuto procesu vazby dochází v době kompilace. Všechny požadované informace jsou známy před spuštěním, takže zvyšuje efektivitu programu a rychlost jeho provádění.
Co je pozdní vazba?
V pozdní vazbě se objekt používá k vyřešení volání metody. Pozdní vazba nastává za běhu. Je také známý jako dynamická vazba. V tomto procesu dojde k vazbě při spuštění programu. Přepsané metody jsou spojeny pomocí pozdní vazby. Viz níže uvedený program.
Obrázek 03: Třída tvaru
Obrázek 04: Třída kruhu
Obrázek 05: Tříúhelníková třída
Obrázek 06: Hlavní program pro pozdní vazbu
Podle výše uvedeného programu má třída Shape metodu kreslení. Třída Kruh a třída Trojúhelník rozšiřuje třídu Tvar. Proto tyto dvě třídy mohou zdědit atributy a metody třídy Shape. Tvarová třída je základní třída. Třídy Circle a Triangle jsou odvozené třídy. Třída Circle a třída Triangle mají také metodu kreslení s vlastní implementací. Metoda draw ve třídě Shape je tedy přepsána metodami draw odvozených tříd.
V hlavním programu je vytvořena referenční proměnná typu Shape. V době kompilace bude kompilátor odkazovat pouze na metodu kreslení základní třídy. Za běhu se provedou různé metody kreslení. Nejprve s bude ukazovat na objekt typu Shape. Je tedy vyvolána metoda kreslení třídy Shape. Potom s bude ukazovat na objekt typu Circle a vyvolá metodu draw třídy Circle. Nakonec s ukáže na objekt typu Triangle a vyvolá metodu draw ve třídě Triangle. Metody jsou volány v závislosti na objektech. Proto se objekt používá k vyřešení volání metody v Late Binding. Informace potřebné pro vazbu jsou poskytovány za běhu, takže rychlost provádění je pomalejší ve srovnání s počáteční vazbou.
Jaká je podobnost mezi časnou vazbou a pozdní vazbou?
Early Binding i Late Binding souvisí s polymorfismem, který je pilířem OOP
Jaký je rozdíl mezi včasnou vazbou a pozdní vazbou?
Rozdílný článek uprostřed před tabulkou
Early Binding vs Late Binding |
|
Proces používání informací o třídě k vyřešení volání metody, ke kterému dochází v době kompilace, se nazývá Early Binding. | Proces použití objektu k vyřešení volání metody, ke kterému dochází za běhu, se nazývá Pozdní vazba. |
Čas vazby | |
Early Binding se děje v době kompilace. | Pozdní vazba se děje za běhu. |
Funkčnost | |
Early Binding používá informace o třídě k vyřešení volání metody. | Pozdní vazba používá objekt k vyřešení volání metody. |
Synonyma | |
Včasná vazba je také známá jako statická vazba. | Pozdní vazba je také známá jako dynamická vazba. |
Výskyt | |
Metody přetížení jsou spojeny pomocí časné vazby. | Přepsané metody jsou spojeny pomocí pozdní vazby. |
Rychlost provedení | |
Rychlost spuštění je při včasné vazbě rychlejší. | Rychlost provedení je při pozdní vazbě nižší. |
Shrnutí - Early vs Late Binding
OOP se běžně používá pro vývoj softwaru. Jedním z hlavních pilířů OOP je polymorfismus. S tím souvisí časná vazba a pozdní vazba. K včasné vazbě dochází v době kompilace, zatímco k pozdní vazbě dochází za běhu. Při přetížení metody dochází k propojení pomocí časné vazby. V přepsání metody dojde k propojení pomocí pozdní vazby. Rozdíl mezi časnou a pozdní vazbou spočívá v tom, že včasná vazba používá informace třídy k vyřešení volání metody, zatímco pozdní vazba používá objekt k vyřešení volání metody.