Differenza chiave – Rilegatura anticipata e tardiva
Early Binding e Late Binding sono due concetti legati 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 usa le informazioni sulla classe per risolvere la chiamata al metodo mentre Late Binding usa l'oggetto per risolvere la chiamata al metodo.
I linguaggi di programmazione come Java supportano la programmazione orientata agli oggetti (OOP). È un paradigma che permette di costruire il programma o il software utilizzando oggetti. Ci sono più oggetti nel software. Questi oggetti sono collegati tra loro e trasmettono 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 sono legati utilizzando il legame anticipato. I metodi sovrascritti vengono uniti utilizzando la rilegatura tardiva.
Cos'è la rilegatura anticipata?
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 sono legati utilizzando il legame anticipato. Fare riferimento al programma sottostante.
Figura 01: Classe di calcolo
Figura 02: Programma principale per la rilegatura anticipata
Secondo il programma sopra, la classe Calculation contiene un metodo add che accetta due valori interi e un altro metodo add che accetta due valori doppi. 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 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'è la rilegatura tardiva?
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 binding dinamico. In questo processo, l'associazione si verifica all'esecuzione del programma. I metodi sovrascritti vengono uniti utilizzando il legame tardivo. Fare riferimento al programma sottostante.
Figura 03: Classe di forma
Figura 04: Classe Circle
Figura 05: Classe Triangolo
Figura 06: Programma principale per la rilegatura tardiva
Secondo il programma sopra, la classe Shape ha un metodo di disegno. Class Circle e classe Triangle estende 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 disegno della classe base. In fase di esecuzione, verranno eseguiti diversi metodi di disegno. Innanzitutto, s punterà all'oggetto di tipo Shape. Quindi, viene invocato 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 la rilegatura anticipata e la rilegatura tardiva?
Sia Early Binding che Late Binding sono legati al polimorfismo che è un pilastro dell'OOP
Qual è la differenza tra rilegatura anticipata e rilegatura tardiva?
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 è chiamato Early Binding. | Il processo di utilizzo dell'oggetto per risolvere la chiamata al metodo che si verifica in fase di esecuzione è chiamato Late Binding. |
Tempo di rilegatura | |
L'associazione anticipata avviene in fase di compilazione. | Late Binding si verifica in fase di esecuzione. |
Funzionalità | |
Early Binding usa le informazioni sulla classe per risolvere la chiamata al metodo. | Late Binding usa l'oggetto per risolvere la chiamata al metodo. |
Sinonimi | |
La rilegatura anticipata è anche nota come rilegatura statica.. | Late Binding è anche noto come binding dinamico. |
Ricorrenza | |
I metodi di sovraccarico sono vincolati utilizzando la rilegatura anticipata. | I metodi sovrascritti vengono uniti utilizzando la rilegatura tardiva. |
Velocità di esecuzione | |
La velocità di esecuzione è più veloce nella rilegatura anticipata. | La velocità di esecuzione è inferiore nella rilegatura in ritardo. |
Riepilogo – Rilegatura anticipata e tardiva
OOP è usato comunemente per lo sviluppo di 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 il legame anticipato. Nell'override del metodo, il legame avviene utilizzando il legame tardivo. La differenza tra Early Binding e Late Binding è che Early Binding usa le informazioni sulla classe per risolvere la chiamata del metodo mentre Late Binding usa l'oggetto per risolvere la chiamata del metodo.