Framework:
Ein Framework ist ein Programmiergerüst?
Kann mir jemand ein Beispiel dafür nennen (Direkt für Java 8), verstehe das nicht ganz.
Library:
Librarys werden importiert um gewisse Funktionen zu nutzen. BSP: import java.math.*
um SQRT Funktionen zu nutzen.
java.lang.*; ist die Library die immer drinnen ist um Strings oder ähnliches boolean usw. zu nutzen
1. Ist das so korrekt?
2. Ich versteh den unterschied zwischen Beiden noch nicht genau?
Bitte um Hilfe. Danke
Library: Bietet Funktionen, die du in deinem Programm aufrufst und nutzt.
Framework: Bietet einen Rahmen für dein Program, in den du dein Programm "einfügst".
Was eine Library ist, scheinst du verstanden zu haben.
Nun Zum Framework:
Wir haben in der Firma eine Kaffeemaschine. Nur leider können meine Kollegen (sind halt Programmierer) diese nicht bedienen. Manchmal füllen sie den Kaffee ein, ohne den Filter eingelegt zu haben, manchmal stellen sie sie an, obwohl sie kein Wasser eingegossen haben ...
Ich habe mir deshalb vorgenommen, ein Framework zu schreiben, damit das Kochen des Kaffees funktioniert. Mein tolles Kaffeekochprogramm soll auch in anderen Firmen benutzbar sein. Allerdings weis ich nicht, wie die konkrete Kaffeemaschine funktioniert
Ich erzeuge zunächst ein Interface, das alle Kaffeemaschinen erfüllen sollten
Einem Benutzer meines "Frameworks" habe ich damit die schwere Aufgabe abgenommen, in welcher Reihenfolge die unterscheilichen Funktionen zu benutzen sind. Er muss dann "nur" noch schreiben:
Java:
classMeineGrueneKaffeeMaschineimplementsKaffeeMaschine{voidfilterEinfuellen(){/* den linken Deckel heben und ... */}voidkaffeEinfuellen(){/* der Kaffe steht oben links ... */}voidwasserEinfuellen(){/* den Kran aufdrehen ... */}voidanstellen(){/* auf die rote Taste druecken */}}
Und damit kann er "einfach" aufrufen
Java:
pubic classMain{publicstatic vid main(String[] args){KaffeeMaschine kaffeeMaschine =newMeineeGrueneKaffeMaschine();KaffeeKocher kaffeeKocher =newKaffeeKocher(kaffeeMaschine);
kaffeeKocher.kocheKaffee();}
Das Einbinden eines solchen Frameworks (das normalerweise als .jar vorliegt) benötigt natürlich einige Mühe. Es ist hier schon öfter darüber diskutiert worden, ob sich diese Mühe lohnt.