GeeksforGeeks

Viele von uns werden sich dieses Unterschieds nicht bewusst sein, der wirklich wichtig ist, um während der Entwicklung zu verstehen. Die mögliche Antwort auf diese Frage lautet: „Ein Framework ist eine Sammlung von verschiedenen Bibliotheken“. Diese Definition ist jedoch nicht ganz zutreffend. „Wer ruft wen auf“, d.h. die Aufrufer/Aufrufer-Beziehung definiert den Unterschied zwischen den beiden Begriffen. Es ist unser Code, der den Bibliothekscode aufruft, während es im Framework der Code des Frameworks ist, der unseren Code aufruft. Schauen wir uns das an.

Bibliothek

Eine Bibliothek stellt eine Reihe von Hilfsfunktionen/Objekten/Modulen bereit, die Ihr Anwendungscode für bestimmte Funktionen aufruft. Bibliotheken konzentrieren sich typischerweise auf einen engen Bereich (z. B. Strings, IO, Sockets), sodass ihre APIs auch tendenziell kleiner sind und weniger Abhängigkeiten erfordern. Sie ist lediglich eine Sammlung von Klassendefinitionen. Warum wir sie brauchen? Der Grund ist sehr einfach, nämlich die Wiederverwendung von Code, die Nutzung von Code, der bereits von anderen Entwicklern geschrieben wurde. Beispiel: Eine Bibliothek hat eine Methode namens findLastIndex(char), um den letzten Index eines bestimmten Zeichens in einer Zeichenkette zu finden. Wir können direkt die Funktion findLastIndex(charToFind) der Bibliothek aufrufen und die Zeichen, deren Position wir finden müssen, als Parameter im Funktionsaufruf übergeben.

Framework

Framework hingegen hat definierte offene oder unimplementierte Funktionen oder Objekte, die der Anwender schreibt, um eine eigene Anwendung zu erstellen. (C++/Java-Anwender werden dies verstehen, da es ähnlich wie die Implementierung einer abstrakten Funktion ist). Da ein Framework selbst eine Anwendung ist, hat es einen größeren Umfang und enthält fast alles, was ein Benutzer braucht, um eine Anwendung nach seinen eigenen Bedürfnissen zu erstellen. Wikipedia macht es deutlicher:

„In der Computerprogrammierung ist ein Software-Framework eine Abstraktion, bei der Software, die generische Funktionalität bereitstellt, durch zusätzlichen, vom Benutzer geschriebenen Code selektiv verändert werden kann und so anwendungsspezifische Software bereitstellt.“

Framework vs. Bibliothek

Der entscheidende Unterschied liegt also in der „Inversion of Control“, allgemein als IoC bezeichnet. Wenn wir eine Methode aus einer Bibliothek aufrufen, haben wir die Kontrolle. Aber im Framework ist die Kontrolle umgekehrt, d.h. das Framework ruft uns auf. Es definiert ein Skelett, in dem die Anwendung ihre eigenen Funktionen definiert, um das Skelett auszufüllen. Ein Beispiel: In Javascript verwenden wir normalerweise folgendes:

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

Während wir in der Bibliothek normalerweise ein Objekt haben, um dessen Funktionen aufzurufen oder wir rufen sie einfach auf. Bsp:

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

Wichtige Punkte:

  • Bibliothek : Sie führt eine Reihe von spezifischen und wohldefinierten Operationen aus. Beispiele: Netzwerkprotokolle, Kompression, Bildmanipulation, String-Utilities, Auswertung regulärer Ausdrücke, Mathematik usw
  • Framework: Es ist bekanntlich ein Skelett, bei dem die Anwendung den Inhalt der Operation definiert, indem sie das Skelett ausfüllt. Beispiele für Frameworks: Web-Anwendungssystem, Plug-in-Manager, GUI-System. Das Framework definiert nur das Konzept, aber eine Anwendung definiert weiter die Funktionalität, die für den Endbenutzer nützlich ist.
  • Inversion der Kontrolle: Wenn wir eine Methode aus einer Bibliothek aufrufen, haben wir die Kontrolle. Aber im Framework ist die Kontrolle umgekehrt, d.h. das Framework ruft uns auf.

Referenz:

  • Video-Tutorial

Dieser Artikel ist ein Beitrag von Ekta Goel. Wenn Ihnen GeeksforGeeks gefällt und Sie einen Beitrag leisten möchten, können Sie auch einen Artikel über contribute.geeksforgeeks.org schreiben oder eine Mail an [email protected] schicken. Sehen Sie Ihren Artikel auf der GeeksforGeeks-Hauptseite erscheinen und helfen Sie anderen Geeks.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.