Differenza chiave: rilegatura anticipata o tardiva
Early Binding e Late Binding sono due concetti correlati al polimorfismo. L'associazione anticipata si verifica in fase di compilazione mentre l'associazione tardiva si verifica in fase di esecuzione. La differenza fondamentale tra Early Binding e Late Binding è che Early Binding utilizza le informazioni sulla classe per risolvere la chiamata al metodo mentre Late Binding utilizza l'oggetto per risolvere la chiamata al metodo.
I linguaggi di programmazione come Java supportano la programmazione orientata agli oggetti (OOP). È un paradigma che consente di costruire il programma o il software utilizzando gli oggetti. Ci sono più oggetti nel software. Questi oggetti sono collegati tra loro e passano messaggi utilizzando metodi. Ogni oggetto ha caratteristiche e comportamenti. Le caratteristiche sono descritte dalle proprietà o dagli attributi. I comportamenti sono descritti utilizzando metodi. L'oggetto Studente può avere caratteristiche come nome, età e sono rappresentate da proprietà. L'oggetto Studente può avere comportamenti come studiare e leggere e sono rappresentati da metodi. Uno dei pilastri principali dell'OOP è il polimorfismo. Consente a un oggetto di comportarsi in più modi. Early Binding e Late Binding sono due concetti in Polymorphism. I metodi di sovraccarico vengono collegati utilizzando l'associazione anticipata. I metodi sostituiti vengono collegati utilizzando l'associazione tardiva.
CONTENUTI
1. Panoramica e differenze principali
2. Cos'è il binding anticipato
3. Cos'è il binding tardivo
4. Somiglianze tra binding anticipato e tardivo
5. Confronto affiancato - binding anticipato vs tardivo in forma tabulare
6. Riepilogo
Cos'è il binding anticipato?
In Early Binding, le informazioni sulla classe vengono utilizzate per risolvere la chiamata al metodo. L'associazione anticipata si verifica in fase di compilazione. È anche noto come associazione statica. In questo processo, l'associazione si verifica prima che il programma venga effettivamente eseguito. I metodi di sovraccarico vengono collegati utilizzando l'associazione anticipata. Fare riferimento al programma seguente.
Figura 01: classe di calcolo
Figura 02: programma principale per l'associazione anticipata
Secondo il 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, verrà richiamato il metodo add che accetta due interi. Quando si passano due valori double al metodo add, richiamerà il metodo corrispondente a due valori double. Questo processo di associazione si verifica in fase di compilazione. Tutte le informazioni richieste sono note prima del runtime, quindi aumenta l'efficienza del programma e la velocità di esecuzione.
Cos'è il Late Binding?
In Late Binding, l'oggetto viene utilizzato per risolvere la chiamata al metodo. L'associazione tardiva si verifica in fase di esecuzione. È anche noto come associazione dinamica. In questo processo, l'associazione avviene durante l'esecuzione del programma. I metodi sostituiti vengono collegati utilizzando l'associazione tardiva. Fare riferimento al programma seguente.
Figura 03: classe di forma
Figura 04: classe Circle
Figura 05: classe triangolo
Figura 06: programma principale per Late Binding
Secondo il programma sopra, la classe Shape ha un metodo di disegno. Class Circle e class Triangle estendono la classe Shape. Pertanto, queste due classi possono ereditare gli attributi ei metodi della classe Shape. Shape Class è la classe base. Le classi Circle e Triangle sono classi derivate. Anche la classe Circle e la classe Triangle hanno il metodo draw con le proprie 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. In fase di compilazione, il compilatore farà riferimento solo al metodo di estrazione della classe base. In fase di 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 di tipo Circle e invocherà il metodo draw della classe Circle. Infine, s punterà all'oggetto di tipo Triangle e invocherà il metodo draw nella classe Triangle. I metodi vengono chiamati a seconda degli oggetti. Pertanto, l'oggetto viene utilizzato per risolvere la chiamata al metodo in Late Binding. Le informazioni richieste per l'associazione vengono fornite in fase di esecuzione, quindi la velocità di esecuzione è più lenta rispetto all'associazione anticipata.
Qual è la somiglianza tra il binding anticipato e quello tardivo?
Sia Early Binding che Late Binding sono correlati al polimorfismo che è un pilastro dell'OOP
Qual è la differenza tra il binding anticipato e quello tardivo?
Articolo diff. Al centro prima della tabella
Rilegatura anticipata vs Rilegatura tardiva |
|
Il processo di utilizzo delle informazioni sulla classe per risolvere la chiamata al metodo che si verifica in fase di compilazione è denominato Early Binding. | Il processo di utilizzo dell'oggetto per risolvere la chiamata al metodo che si verifica in fase di esecuzione è denominato Late Binding. |
Tempo di rilegatura | |
L'associazione anticipata avviene in fase di compilazione. | Il binding tardivo avviene in fase di esecuzione. |
Funzionalità | |
Early Binding utilizza le informazioni sulla classe per risolvere la chiamata al metodo. | L'associazione tardiva utilizza l'oggetto per risolvere la chiamata al metodo. |
Sinonimi | |
Early Binding è noto anche come binding statico. | L'associazione tardiva è anche nota come associazione dinamica. |
Evento | |
I metodi di sovraccarico vengono collegati utilizzando l'associazione anticipata. | I metodi sostituiti vengono collegati utilizzando l'associazione tardiva. |
Velocità di esecuzione | |
La velocità di esecuzione è più veloce nel binding anticipato. | La velocità di esecuzione è inferiore nel binding tardivo. |
Riepilogo: associazione anticipata vs rilegatura tardiva
OOP è comunemente usato per lo sviluppo del software. Uno dei pilastri principali dell'OOP è il polimorfismo. Early Binding e Late Binding sono correlati a questo. L'associazione anticipata si verifica in fase di compilazione mentre l'associazione tardiva si verifica in fase di esecuzione. Nel sovraccarico del metodo, il legame avviene utilizzando l'associazione anticipata. Nella sostituzione del metodo, il legame avviene utilizzando il legame tardivo. La differenza tra Early Binding e Late Binding è che Early Binding utilizza le informazioni sulla classe per risolvere la chiamata al metodo mentre Late Binding utilizza l'oggetto per risolvere la chiamata al metodo.