Framework/Library

O2016

Bekanntes Mitglied
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
 
Ich ruf mit import java.math.*; eine library auf, welche ein Framework beinhaltet.
Und ein Framework ruft meinen Code auf.

Eine Library wird benutzt um den selben Code, den ein anderer Programmierer benutzt hat wieder nutzen zu können.
sozusagen Funktionen davon nutzen.

Aber wirklich Framework ist mir immer noch nicht klar. Kann jemand ein Beispiel geben?
 
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

Java:
public interface KaffeeMaschine {
    void filterEinfuellen();
    void kaffeEinfuellen();
    void wasserEinfuellen();
    void anstellen();
}
Und dazu ein "Framework", das die Funktionen in der richtigen Reihenfolge aufruft:
Java:
public class KaffeeKocher {
    private KaffeeMaschine kaffeeMaschine;
    public KaffeeKocher(KaffeeMaschine kaffeeMaschine) {
        this.kaffeeMaschine = kaffeeMaschine;
    }
    public void kocheKaffee() {
        kaffeeMaschine.filterEinfuellen();
        kaffeeMaschine.kaffeEinfuellen();
        kaffeeMaschine.wasserEinfuellen();
        kaffeeMaschine.anstellen();
    }
}
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:
class MeineGrueneKaffeeMaschine implements KaffeeMaschine {
    void filterEinfuellen() {/* den linken Deckel heben und ... */}
    void kaffeEinfuellen() {/* der Kaffe steht oben links ... */}
    void wasserEinfuellen() {/* den Kran aufdrehen ... */}
    void anstellen() {/* auf die rote Taste druecken */}
}
Und damit kann er "einfach" aufrufen
Java:
pubic class Main {
    public static vid main(String[] args) {
        KaffeeMaschine kaffeeMaschine = new MeineeGrueneKaffeMaschine();
        KaffeeKocher kaffeeKocher = new KaffeeKocher(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.
 

Neue Themen


Zurück
Oben