# Was ist ein Framework



## Guest (8. Apr 2008)

Hi,

ich habe ein Verständnisproblem mit dem Begriff Framework und weiß nicht genau wie man dies am besten beschreiben bzw. verstehen kann. Habe dazu bereits mehrere Begriffsdefintion gelesen, doch ehrlich gesagt, ist mir es noch immer unklar.

Soweit ich es bis jetzt verstanden habe:
Ein Framework ist also ein Art "Gerüst". Es definiert die Architektur meiner Anwendung d.h. die Struktur im Ganzen, die Unterteilung in Klassen und wie die Klassen zusammenarbeiten.

Nur was ist dann der Unterschied zwischen Klassenbibliothen und Frameworks? Kann ich mit einer Klassenbibliothek meine Anwendung selbst entwerfen (zusammenbauen) jedoch mit einem Framework ist genau festgelegt wie die Anwendung aufgebaut werden muss? 

Könnte mir vielleicht jemand das Ganze bitte an einem Beispiel erklären was ein Framework ist? Was wären Java Frameworks?

Danke für eure Hilfe.


----------



## maki (8. Apr 2008)

"Inversion of Control" ist das Stichwort, das beschreibt ein Framework.

Dabei geht es darum, das der generelle Ablauf und die beteiligten (Klassen) festgelegt sind.
Du "klinkst" dich sozusagen in diesen Ablauf rein, in dem du zB. von bestimmten Klassen erbst oder deine Klassen dem Framework als Parameter übergibst ein.
Das Framework ruft dann deine Klassen/Methoden auf, "Umdrehen der Kontrolle" eben.

Im Gegensatz dazu werden bei Bibliotheken dir von dir benötigten Klassen/Methoden aufgerufen, wenn du entscheidest dass sie aufgerufen werden sollen.

Martin Fowler hat dazu etwas geschrieben: http://martinfowler.com/bliki/InversionOfControl.html


----------



## SlaterB (8. Apr 2008)

eine Klassenbibliothek ist eher eine lose Ansammlung beliebiger Klassen, 
alle mehr oder weniger unabhängig voneinander,
die man einzeln in sein eigenes Programm an beliebiger Stelle einbaut,
das Programm spielt die Hauptrolle, externe Klassen sind individuelle Ergänzungen

beim Framwork ist es in gewisser Weise andersrum, das Gerüst der Anwendung ist fest vorgegeben und wird nur an einzelnen Stellen um eigene Logik erweitert,


das ist nun natürlich in beide Richtungen übertrieben, 
Übergänge sind wie immer fließend, aber der Grundgedanke


----------



## Niki (8. Apr 2008)

Meistens ist ein Framework eine Sammlung von Bibliotheken mit einer eigenen Erweiterung/Abstraktion. Das heißt das Framework bietet eigene Klassen an, die die Bibliotheken im Hintergrund benutzen. Diese Frameworks werden z.B. bei WebApplikationen gerne verwendet (Struts, Spring).


----------



## Guest (8. Apr 2008)

danke für die Erklärungen und den Link......

ist mir nun verständlicher.


----------

