Skip to content

Framework <-> API

2006 February 16
by Sven Busse

Juten Tach,

ich habe gerade diesen neuen Artikel im devnet von Macr … Adobe gelesen über das Cairngorn Framework. Dabei wird auch eine Begriffsdefinition über “Frameworks” prinzipiell abgegeben. Steven Webster hat recht, wenn er sagt, dass der Begriff Framework überbeansprucht ist. Trotzdem vermisse ich bei ihm eine eindeutige Definition.

Ein Framework ist eine Sammlung von Programmcode, der für sich genommen bereits die Applikationsbasis darstellt. Das heisst, dass die grundsätzlich Steuerung des Programms eben durch diese Basis selbst erfolgt. Ein Framework besteht aus sogenannten Hot Spots und Frozen Spots. Frozen Spots sind Teile im Framework, die als fest und grundsätzlich unveränderlich angesehen werden. HotSpots sind Teile, die durch den Nutzer des Frameworks (ein Entwickler) verändert oder eigens entwickelt werden können. Dabei erfolgt die Implementierung mit dem Hintergedanken, dass ein HotSpot eine Umsetzung einer individuellen Anforderung ist, die sich durch das allgemein gehaltene Framework nicht selbst abbilden lässt. Das können individuelle Schnittstellen sein, Oberflächentemplates, Komponenten, etc.. Gesteuert werden diese individuellen Teile, die HotSpots aber wiederum durch das Framework selbst. Frameworks arbeiten also nach dem berühmten Hollywood-Prinzip: “Don’t call us, we call you”.

Demzufolge ist Cairngorn in der Tat ein Framework, aber eines, welches nur sehr sehr grundsätzliche Frozen Spots bietet, weil es eigentlich “nur” eine strukturelle Vorgabe anbieten will (nicht missverstehen, so eine Vorgabe ist sehr hilfreich und ich finde das Framework sehr gelungen). Bei der Erstellung eines Frameworks muss also immer entschieden werden, wie das Verhältnis von festen zu veränderlichen Teilen ausfallen soll, dementsprechend einfach zu implementieren (aber recht starr) oder komplex zu implementieren (aber auch meist recht individuell anpassbar) kann ein Framework ausfallen.

Dem gegenüber stehen Funktionsbibliotheken, auch APIs. APIs sind Bibliotheken von Funktionalitäten, die eine spezielle Aufgabe oder eine Gruppe von verwandten Aufgaben erfüllen. Diese APIs stellen selbst nicht das Programm dar, sondern sie agieren quasi als Dienstleister für das selbst zu entwickelnde Programm.

No comments yet

Leave a Reply

Note: You can use basic XHTML in your comments. Your email address will never be published.

Subscribe to this comment feed via RSS

*