Molti di noi non saranno consapevoli di questa differenza che è davvero importante da capire durante lo sviluppo. La possibile risposta a questa domanda, se posta, sarà “Framework è una collezione di varie librerie”. Tuttavia, questa definizione non è del tutto vera. “Chi chiama chi” cioè la relazione chiamante/calcolato definisce la differenza tra i due termini. È il nostro codice che chiama il codice della libreria mentre in framework, è il codice di framework che chiama il nostro codice. Vediamo come.
Libreria
Una libreria fornisce un insieme di funzioni/oggetti/moduli di aiuto che il vostro codice applicativo chiama per funzionalità specifiche. Le librerie tipicamente si concentrano su un ambito ristretto (ad esempio, stringhe, IO, socket), quindi le loro API tendono ad essere più piccole e richiedono meno dipendenze. È solo una collezione di definizioni di classi. Perché ne abbiamo bisogno? La ragione è molto semplice, cioè il riutilizzo del codice, usare il codice che è già stato scritto da altri sviluppatori. Esempio: una libreria ha un metodo chiamato findLastIndex(char) per trovare l’ultimo indice di un particolare carattere in una stringa. Possiamo chiamare immediatamente la funzione findLastIndex(charToFind) della libreria e passare i caratteri di cui dobbiamo trovare la posizione come parametro nella chiamata della funzione.
Framework
Framework, d’altra parte ha definito funzioni o oggetti aperti o non implementati che l’utente scrive per creare un’applicazione personalizzata. (Gli utenti di C++/Java capiranno questo perché è molto simile all’implementazione di una funzione astratta). Poiché un framework è esso stesso un’applicazione, ha una portata più ampia e include quasi tutto il necessario per fare un’applicazione dell’utente secondo i suoi bisogni. Wikipedia lo rende più chiaro:
“Nella programmazione dei computer, un framework software è un’astrazione in cui il software che fornisce funzionalità generiche può essere selettivamente modificato da ulteriore codice scritto dall’utente, fornendo così un software specifico per l’applicazione”
Quindi, la differenza chiave è nella “Inversione del controllo”, comunemente chiamata IoC. Quando chiamiamo un metodo da una libreria, abbiamo il controllo. Ma nel framework, il controllo è invertito, cioè il framework chiama noi. Esso definisce uno scheletro dove l’applicazione definisce le proprie caratteristiche per riempire lo scheletro. Esempio, in Javascript, di solito usiamo questo:
$(document.ready(){ // this call will be done by the jquery // framework when document will be ready. function() { /* your code */ // our implementation inside the framework's function }});
Mentre in libreria, normalmente abbiamo il suo oggetto per chiamare le sue funzioni o le chiamiamo semplicemente. Es:
str = "Geeks.ForGeeks"var pos = str.lastIndexOf("."); // simply calling function of string library
Punti importanti:
- Biblioteca: esegue un insieme di operazioni specifiche e ben definite. Esempi : Protocolli di rete, compressione, manipolazione delle immagini, utilità per le stringhe, valutazione delle espressioni regolari, matematica ecc
- Framework: È noto per essere uno scheletro in cui l’applicazione definisce il contenuto dell’operazione compilando lo scheletro. Esempi di framework: Sistema di applicazioni web, gestore di plug-in, sistema GUI. Il framework definisce solo il concetto ma un’applicazione definisce ulteriormente la funzionalità che è utile per gli utenti finali.
- Inversione del controllo: Quando chiamiamo un metodo da una libreria, abbiamo il controllo. Ma nel framework, il controllo è invertito, cioè il framework chiama noi.
Riferimento:
- Video Tutorial
Questo articolo è stato contribuito da Ekta Goel. Se ti piace GeeksforGeeks e vuoi contribuire, puoi anche scrivere un articolo usando contribute.geeksforgeeks.org o inviare il tuo articolo a [email protected]. Vedi il tuo articolo apparire sulla pagina principale di GeeksforGeeks e aiuta altri Geek.