Early Binding e Late Binding sono due concetti legati al polimorfismo. Il binding iniziale si verifica in fase di compilazione mentre il binding tardivo si verifica in fase di esecuzione. Il differenza fondamentale tra Early e Late Binding è quello Early Binding utilizza le informazioni sulla classe per risolvere il metodo di chiamata mentre Late Binding utilizza l'oggetto per risolvere il metodo di chiamata.
I linguaggi di programmazione come Java supportano la programmazione orientata agli oggetti (OOP). È un paradigma che permette di costruire il programma o il software usando gli oggetti. Ci sono più oggetti nel software. Questi oggetti sono collegati tra loro e passano messaggi usando metodi. Ogni oggetto ha caratteristiche e comportamenti. Le caratteristiche sono descritte dalle proprietà o attributi. I comportamenti sono descritti utilizzando metodi. L'oggetto Studente può avere caratteristiche come nome, età e sono rappresentati da proprietà. L'oggetto Studente può avere comportamenti come studiare e leggere, e sono rappresentati da metodi. Uno dei pilastri principali di OOP è il polimorfismo. Permette a un oggetto di comportarsi in più modi. Early Binding e Late Binding sono due concetti in Polymorphism. I metodi di sovraccarico sono legati usando l'associazione anticipata. I metodi sottoposti a override sono uniti usando l'associazione tardiva.
1. Panoramica e differenza chiave
2. Cosa è Early Binding
3. Cos'è Late Binding
4. Somiglianze tra legatura precoce e tardiva
5. Confronto fianco a fianco - Rilegatura precoce e tardiva in forma tabulare
6. Sommario
In Early Binding, le informazioni sulla classe vengono utilizzate per risolvere la chiamata al metodo. Early Binding si verifica al momento della compilazione. È anche conosciuto come il legame statico. In questo processo, l'associazione si verifica prima dell'esecuzione effettiva del programma. I metodi di sovraccarico sono legati usando l'associazione anticipata. Fare riferimento al programma seguente.
Figura 01: Classe di calcolo
Figura 02: Programma principale per legatura anticipata
In base al programma precedente, la classe Calculation contiene un metodo add che accetta due valori interi e un altro metodo add che accetta due valori double. Nel programma principale, viene creato un oggetto di tipo Calcolo. Quando si passano due interi al metodo add, invocherà il metodo add che accetta due interi. Quando si passano due valori doppi al metodo add, invocherà il metodo corrispondente a due valori doppi. Questo processo di associazione avviene al momento della compilazione. Tutte le informazioni richieste sono note prima del runtime, quindi aumentano l'efficienza del programma e la velocità di esecuzione.
In Late Binding, l'oggetto viene utilizzato per risolvere il metodo di chiamata. Late Binding si verifica in fase di esecuzione. È anche conosciuto come associazione dinamica. In questo processo, l'associazione si verifica durante l'esecuzione del programma. I metodi sottoposti a override sono uniti usando l'associazione tardiva. Fare riferimento al programma seguente.
Figura 03: Shape Class
Figura 04: Circle Class
Figura 05: Triangle Class
Figura 06: programma principale per Late Binding
Secondo il programma di cui sopra, la classe Shape ha un metodo draw. Classe Circle e classe La classe Triangle estende la classe Shape. Pertanto, queste due classi possono ereditare gli attributi e i metodi della classe Shape. Shape Class è la classe base. Le classi Circle e Triangle sono classi derivate. Anche il Cerchio di classe e il Triangolo di classe hanno il metodo di disegno con le loro stesse implementazioni. Quindi, il metodo draw nella classe Shape viene sovrascritto dai metodi draw delle classi derivate.
Nel programma principale, viene creata una variabile di riferimento s di tipo Shape. Al momento della compilazione, il compilatore farà riferimento solo al metodo di disegno della classe base. Al momento dell'esecuzione, verranno eseguiti diversi metodi di disegno. Primo, s punterà all'oggetto di tipo Shape. Quindi, viene richiamato il metodo draw della classe Shape. Quindi la s punterà all'oggetto del tipo Circle, e invocherà il metodo draw della classe Circle. Infine, s punterà all'oggetto di tipo Triangolo e invocherà il metodo di estrazione nella classe Triangle. I metodi sono chiamati a seconda degli oggetti. Pertanto, l'oggetto viene utilizzato per risolvere il metodo che chiama Late Binding. Le informazioni richieste per l'associazione vengono fornite in fase di runtime, pertanto la velocità di esecuzione è più lenta rispetto al bind anticipato.
Early Binding vs Late Binding | |
Il processo di utilizzo delle informazioni sulla classe per risolvere la chiamata al metodo che si verifica in fase di compilazione è chiamato Early Binding. | Il processo di utilizzo dell'oggetto per risolvere il metodo di chiamata che si verifica in fase di esecuzione è chiamato Late Binding. |
Tempo di legare | |
Early Binding avviene al momento della compilazione. | Late Binding si verifica in fase di esecuzione. |
Funzionalità | |
Early Binding utilizza le informazioni sulla classe per risolvere il metodo di chiamata. | Late Binding usa l'oggetto per risolvere il metodo di chiamata. |
Sinonimi | |
Early Binding è anche conosciuto come legame statico ... | Late Binding è anche conosciuto come binding dinamico. |
avvenimento | |
I metodi di sovraccarico sono legati usando l'associazione anticipata. | I metodi sottoposti a override sono uniti usando l'associazione tardiva. |
Velocità di esecuzione | |
La velocità di esecuzione è più veloce nell'associazione anticipata. | La velocità di esecuzione è inferiore nell'associazione tardiva. |
OOP è usato comunemente per lo sviluppo di software. Uno dei pilastri principali di OOP è il polimorfismo. Early Binding e Late Binding sono correlati a questo. Early Binding si verifica in fase di compilazione mentre Late Binding si verifica in fase di esecuzione. Nel sovraccarico del metodo, l'incollaggio avviene usando l'associazione anticipata. In caso di override del metodo, il legame avviene utilizzando l'associazione tardiva. La differenza tra Early e Late Binding è che Early Binding utilizza le informazioni sulla classe per risolvere il metodo di chiamata mentre Late Binding usa l'oggetto per risolvere il metodo di chiamata.
1.Java Interview 04 - Static Binding Vs Dynamic Binding, Mahika Tutorials, 27 dic. 2017. Disponibile qui
2.Invio di metodi dinamici in Java | Core Java Tutorial | Studytonight. Disponibile qui