GeeksforGeeks

Velen van ons zullen zich niet bewust zijn van dit verschil, dat echt belangrijk is om te begrijpen tijdens de ontwikkeling. Het mogelijke antwoord op deze vraag zal zijn: “Framework is een verzameling van verschillende bibliotheken”. Deze definitie is echter niet helemaal waar. “Wie roept wie aan” d.w.z. de caller/callee relatie definieert het verschil tussen de twee termen. Het is onze code die de code van de bibliotheek aanroept, terwijl in framework, het de code van framework is die onze code aanroept. Laten we eens kijken hoe.

Bibliotheek

Een bibliotheek biedt een set hulpfuncties/objecten/modules die door uw applicatiecode worden aangeroepen voor specifieke functionaliteit. Bibliotheken richten zich meestal op een beperkt gebied (bijv. strings, IO, sockets), dus hun API’s zijn meestal ook kleiner en vereisen minder afhankelijkheden. Het is gewoon een verzameling van klasse definities. Waarom hebben we die nodig? De reden is heel simpel, namelijk code hergebruik, gebruik de code die al geschreven is door andere ontwikkelaars. Bijvoorbeeld, een bibliotheek heeft een methode genaamd findLastIndex(char) om de laatste index van een bepaald karakter in een string te vinden. We kunnen direct de functie findLastIndex(charToFind) van de bibliotheek aanroepen en de tekens waarvan we de positie moeten vinden als parameter in de functie-oproep meegeven.

Framework

Framework, aan de andere kant, heeft gedefinieerde open of niet-geïmplementeerde functies of objecten die de gebruiker schrijft om een aangepaste toepassing te maken. (C++/Java gebruikers zullen dit begrijpen aangezien het veel lijkt op het implementeren van een abstracte functie). Omdat een framework zelf een applicatie is, heeft het een breder bereik en omvat het bijna alles wat nodig is om een gebruiker een applicatie te laten maken volgens zijn eigen behoeften. Wikipedia maakt het duidelijker:

“In computerprogrammering is een software framework een abstractie waarin software die generieke functionaliteit biedt, selectief kan worden gewijzigd door extra door de gebruiker geschreven code, waardoor applicatiespecifieke software wordt geboden”

framework vs library

Het belangrijkste verschil zit hem dus in de “Inversion of Control”, ook wel IoC genoemd. Als we een methode uit een bibliotheek aanroepen, hebben we de controle. Maar in een framework, is de controle omgekeerd, d.w.z. het framework roept ons op. Het definieert een skelet waar de applicatie zijn eigen functies definieert om het skelet in te vullen. Voorbeeld, in Javascript, gebruiken we meestal dit:

$(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 }});

Terwijl we in een bibliotheek gewoonlijk een object hebben om de functies ervan aan te roepen of we roepen ze gewoon aan. Ex:

str = "Geeks.ForGeeks"var pos = str.lastIndexOf("."); // simply calling function of string library

Belangrijke punten:

  • Bibliotheek : Deze voert een reeks specifieke en welomschreven bewerkingen uit. Voorbeelden : Netwerkprotocollen, compressie, beeldmanipulatie, string utilities, reguliere expressie evaluatie, wiskunde etc
  • Framework: Het staat bekend als een skelet waarbij de applicatie de inhoud van de bewerking definieert door het skelet in te vullen. Voorbeelden van frameworks: Web applicatie systeem, Plug-in manager, GUI systeem. Het raamwerk definieert alleen het concept, maar een applicatie definieert verder de functionaliteit die nuttig is voor eindgebruikers.
  • Inversie van controle: Wanneer we een methode uit een bibliotheek aanroepen, hebben we de controle. Maar in een framework is de controle omgekeerd, d.w.z. het framework roept ons aan.

Referentie:

  • Video Tutorial

Dit artikel is geschreven door Ekta Goel. Als je GeeksforGeeks leuk vindt en een bijdrage wilt leveren, kun je ook een artikel schrijven via contribute.geeksforgeeks.org of mail je artikel naar [email protected]. Zie je artikel verschijnen op de GeeksforGeeks hoofdpagina en help andere Geeks.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *