Library vs. Framework: Das sind die Unterschiede
Allgemein haben Libraries und Frameworks das gleiche Ziel: Sie wollen den Funktionsumfang eines Programms erweitern. Trotzdem sind beide Begriffe nicht identisch und weisen einige Unterschiede auf.
Libraries und wie sie funktionieren
Bei einer Bibliothek (englisch: library) handelt es sich um eine Sammlung von Klassen und Funktionen. Einige arbeiten dabei im Hintergrund und bleiben nach außen hin verborgen. Eine Programmierschnittstelle, kurz API (kurz für application programming interface), ermöglicht dann den Zugriff auf die nötigen Funktionen. Der Entwickler ruft diese Funktionen nun direkt auf und behält somit die Kontrolle, zu welchem Zeitpunkt und in welchem Umfang er diese Aufrufe tätigt.
Library vs. Framework
Ein Framework hingegen ist eine spezielle Form der Library. Das Framework selbst ist dabei kein fertiges Programm, sondern muss an vorgesehenen Stellen ergänzt werden. Um dies zu tun, werden geeignete Klassen implementiert und registriert, welche dann von dem Framework genutzt und kontrolliert werden können.
„Das Framework stellt eine wiederverwendbare, gemeinsame Struktur für Anwendungen zur Verfügung. Entwickler binden das Framework in ihre eigenen Anwendungen ein und erweitern es so, dass es ihre bestimmten Anforderungen erfüllt.“
So beschreibt der Informatiker Johnson gemeinsam mit Brian Foote in einem Artikel zur objektorientierten Programmierung aus dem Jahre 1988 ein Framework als wiederverwendbare Struktur, welche nur für die speziellen Anforderungen der eigenen Anwendung erweitert werden muss.
Der Entwickler gibt also die Kontrolle, wann die erstellten Klassen verwendet werden, ab. Deswegen nennt man diese Art der Kontrollumkehr auch „Inversion of Control“. Konkret kann ein solches Framework mithilfe des Listener-Patterns eingebunden werden. So könnte ein Framework beispielsweise die Funktion eines Buttons bereitstellen. Nun kann eine Listener-Methode registriert werden, welche das Framework immer beim Drücken dieses Buttons aufruft.
Kurz zusammengefasst
Kurz gesagt: Bei einer Library ruft der Entwickler innerhalb seines Codes die Klassen und Funktionen der Bibliothek direkt auf. Hingegen ruft das Framework, eine bestimme Form der Library, vorgesehene Funktionen wenn nötig selbständig auf. Damit folgt es dem Paradigma „Inversion of Control“.
Bitte beachte unsere Community-Richtlinien
Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.
Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.
Dein t3n-Team