Muster erkennen. Idee: Fassade.

Mappenz

Bekanntes Mitglied
Hi,

ich habe folgende Klassen zu verschönern.

Java:
public class Kartoffeln {
    void zubereiten() {
        /* Der Rumpf der Methode zubereiten() darf nicht verändert werden! */
        setzeWasserAuf();
        kochen();
        abseihen();
        ladeAufTeller();
    }

    void ladeAufTeller() {
        System.out.println("Essen auf den Teller geladen.");
    }

    void abseihen() {
        System.out.println("Kartoffeln nun im Sieb.");
    }

    void kochen() {
        System.out.println("Kartoffeln kochen jetzt.");
    }

    void setzeWasserAuf() {
        System.out.println("Wasser aufgesetzt und nun kochend.");
    }
}

Java:
public class Main {

    /**
     * @param args Kommandozeilenargumente
     * 
     * In den drei Klassen stimmt die Methode zubereiten() zwar überein,
     * aber die darin aufgerufenen Methoden unterscheiden sich in dem,
     * was sie ausführen - das könnte man bestimmt schöner und mit weniger
     * Quelltextverdopplung lösen ...
     * 
     * (Die Methode main() darf nicht angefasst werden!)
     */
    public static void main(String[] args) {
        Kartoffeln meineKartoffeln = new Kartoffeln();
        meineKartoffeln.zubereiten();
        
        Nudeln meineNudeln = new Nudeln();
        meineNudeln.zubereiten();

        Reis meinReis = new Reis();
        meinReis.zubereiten();
    }

}

Java:
public class Nudeln {
    void zubereiten() {
        /* Der Rumpf der Methode zubereiten() darf nicht verändert werden! */
        setzeWasserAuf();
        kochen();
        abseihen();
        ladeAufTeller();
    }

    void ladeAufTeller() {
        System.out.println("Essen auf den Teller geladen.");
    }

    void abseihen() {
        System.out.println("Nudeln nun im Sieb.");
    }

    void kochen() {
        System.out.println("Nudeln kochen jetzt.");
    }

    void setzeWasserAuf() {
        System.out.println("Wasser aufgesetzt und nun kochend.");
    }
}

Java:
public class Reis {
    void zubereiten() {
        /* Der Rumpf der Methode zubereiten() darf nicht verändert werden! */
        setzeWasserAuf();
        kochen();
        abseihen();
        ladeAufTeller();
    }

    void ladeAufTeller() {
        System.out.println("Essen auf den Teller geladen.");
    }

    void abseihen() {
        System.out.println("Reis nun im Sieb.");
    }

    void kochen() {
        System.out.println("Reis kocht jetzt.");
    }

    void setzeWasserAuf() {
        System.out.println("Wasser aufgesetzt und nun kochend.");
    }
}

Ich habe einfach alles in eine abstrakte Superklasse gezogen, dabei sind
Code:
abseihen()
und
Code:
kochen()
abstrakt und müssen in den Unterklassen implementiert werden. Damit sind alle Codeverdoppelungen aus der Welt, der Code sieht für mich gut aus und ich bin zufrieden. Ich kann kein Muster erkennen, am ehesten noch Fassade. Was meint ihr zur Lösung und zum "erkannten" Muster?

Gruß
Michi
 
M

maki

Gast
Wo siehst du denn deine Facade? (Mal abgeseheen davon, dass du uns den veränderten Code mit der angebl. Facade nicht zeigst...)

Nach deiner Beschreibung würde ich zum Template Pattern / Schablonen Muster tendieren.

Ps: Man kann Muster auch erlernen (womöglich sogar besser), wenn man "guten" Code von anderen liest und dann die Muster erkennt.
 

Mappenz

Bekanntes Mitglied
naja, die Fassade sehe ich darin, dass ich eine einheitliche Schnittstelle zu den Klassen die ich jetzt habe anbiete.

Den fertigen Code würde ich ungerne Zeigen, denn Kopien werden hart abgestraft. Aber es ist auch nichts Kompliziertes, einfach alles aus den 3 Speisen in eine Superklasse ziehen und die Subklassen zwingen die individuell ausgeprägten Methoden zu überschreiben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
1 Wie dieses Muster am einfachsten erkennen? Java Basics - Anfänger-Themen 32
Yasemin bahar Muster erkennen Java Basics - Anfänger-Themen 13
U Muster in einem Array erkennen Java Basics - Anfänger-Themen 8
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
B Dekorator Muster - Irgendwas stimmt hier doch nicht? Java Basics - Anfänger-Themen 4
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
H Muster mit verschachtelten Schleifen kreieren. Java Basics - Anfänger-Themen 2
C Erste Schritte Muster ausgeben in der Konsole - großes V Java Basics - Anfänger-Themen 5
F Quadrat Mit Muster Java Basics - Anfänger-Themen 15
J Muster und Schleifen Java Basics - Anfänger-Themen 33
R 2D Arrays mit vorgegebenem Muster Java Basics - Anfänger-Themen 2
E Arrays nach best Muster füllen Java Basics - Anfänger-Themen 4
K String nach bestimmtem Muster parsen Java Basics - Anfänger-Themen 3
P Sägezahn Muster Programm Java Basics - Anfänger-Themen 2
C Array Muster erzeugen Java Basics - Anfänger-Themen 2
J Erste Schritte zweidimensionales Array Muster befüllen. Java Basics - Anfänger-Themen 4
J Strukturierung mit MVC Muster Java Basics - Anfänger-Themen 20
J Array Muster mit true und false Java Basics - Anfänger-Themen 6
C Muster programmieren Java Basics - Anfänger-Themen 4
C Muster programmieren Java Basics - Anfänger-Themen 4
E Muster auf der Konsole ausgeben lassen (Schleifen) Java Basics - Anfänger-Themen 7
arti28 Erste Schritte For-Schleifen und While-Schleifen, String als Muster ausgeben. Java Basics - Anfänger-Themen 3
L Java Muster Java Basics - Anfänger-Themen 1
Todesbote String auf Muster überprüfen Java Basics - Anfänger-Themen 19
C Array Zickzack Muster Java Basics - Anfänger-Themen 3
P RegEx Muster mehrfach treffen Java Basics - Anfänger-Themen 2
Dit_ Regex | Muster {a}{b}{c} Java Basics - Anfänger-Themen 7
pindakaas Compiler geht nicht (Dekorator Muster) Java Basics - Anfänger-Themen 18
M Datentypen Strings nach Muster auslesen und verarbeiten Java Basics - Anfänger-Themen 5
S X Zeichnen als Muster ausgeben Java Basics - Anfänger-Themen 5
R Muster ausgeben Java Basics - Anfänger-Themen 4
H Muster ausgeben Java Basics - Anfänger-Themen 25
G String auf Muster prüfen Java Basics - Anfänger-Themen 5
O useDelimiter / Muster im Parameter (Pattern) Java Basics - Anfänger-Themen 6
S OOP Warum gleiche Instanz der Klasse? (Factory-Muster) Java Basics - Anfänger-Themen 13
L Sägezahn Muster Java Basics - Anfänger-Themen 4
C Muster mit Zweidimensionalen Arrays Java Basics - Anfänger-Themen 18
0 Applet mit folgendem Muster erstellen Java Basics - Anfänger-Themen 12
P Fragen zum Observer Muster und Datenbanken Java Basics - Anfänger-Themen 2
Z Muster Java Basics - Anfänger-Themen 9
J nach Muster in String suchen Java Basics - Anfänger-Themen 4
T scanner eingaben erkennen und umtauschen Java Basics - Anfänger-Themen 4
B Zusammenhängende Blöcke bei x-gewinnt erkennen? Java Basics - Anfänger-Themen 14
D falsche eingabe erkennen Java Basics - Anfänger-Themen 2
H Logik Fehler erkennen Java Basics - Anfänger-Themen 21
N Eingabe erkennen, ob groß oder kleingeschrieben worden ist Java Basics - Anfänger-Themen 22
N palindrom erkennen Java Basics - Anfänger-Themen 3
A Figur erkennen, aber Abweichung falsch Java Basics - Anfänger-Themen 2
C Erkennen ob Frame geschlossen wurde Java Basics - Anfänger-Themen 2
M Rationale Zahl erkennen - Kurze Frage zum Restwert nach Division Java Basics - Anfänger-Themen 3
P Eigenschaft eines imperativen Algo (Pseudocode) sofort erkennen Java Basics - Anfänger-Themen 1
G Verlassen einer ComboBox erkennen Java Basics - Anfänger-Themen 16
S Java Großbuchstabe erkennen Java Basics - Anfänger-Themen 5
D Wenn ich repaint(); mache, flackert es so stark, das man fast nichts erkennen kann. Java Basics - Anfänger-Themen 11
B Unterschiede in einer Liste erkennen Java Basics - Anfänger-Themen 1
O String: Befehl und Wert erkennen. Java Basics - Anfänger-Themen 4
S Zeilenumbruch mit Scanner erkennen Java Basics - Anfänger-Themen 9
J Leerzeichen im Pfad automatisch erkennen Java Basics - Anfänger-Themen 30
M Input/Output Zeilenumbrüche erkennen und beibehalten Java Basics - Anfänger-Themen 4
X XML-Eintrag an Attribute erkennen Java Basics - Anfänger-Themen 2
N Erkennen ob Linkshänder Maus Java Basics - Anfänger-Themen 4
L In Javakara Palindrom erkennen. Java Basics - Anfänger-Themen 9
B Tastatureingabe erkennen Java Basics - Anfänger-Themen 8
D Input/Output Buchstaben als bestimmte Zahl erkennen Java Basics - Anfänger-Themen 4
F Blinken oder Dauer ein erkennen Java Basics - Anfänger-Themen 6
F Linien und Kurven erkennen Java Basics - Anfänger-Themen 2
T Richtigen Wert erkennen Java Basics - Anfänger-Themen 9
D Klassenmethode: Befehl erkennen, dann int zurückgeben Java Basics - Anfänger-Themen 2
S Laufzeitfehler erkennen Java Basics - Anfänger-Themen 3
T Erste Schritte Methoden anwenden und erkennen Java Basics - Anfänger-Themen 5
D Erste Schritte Array erkennen Java Basics - Anfänger-Themen 4
B Erkennen, wann static oder nicht? Java Basics - Anfänger-Themen 7
J Byte Folge erkennen Java Basics - Anfänger-Themen 5
F Attribute von Feldinhalten erkennen Java Basics - Anfänger-Themen 6
N Erste Schritte Doppelwerte erkennen Java Basics - Anfänger-Themen 5
H Schachbrett erkennen Java Basics - Anfänger-Themen 19
T Erste Schritte Leerzeile in JAVA erkennen /übergehen Java Basics - Anfänger-Themen 9
S Erkennen ob Zahl durch 500Teilbar ist Java Basics - Anfänger-Themen 21
Java-Insel StringBuilder Zeilenumbrüche erkennen Java Basics - Anfänger-Themen 3
H Datei in kleine Stücke teilen und wieder erkennen Java Basics - Anfänger-Themen 10
T Erkennen ob ein Pfad lokal oder im Netzwerk ist Java Basics - Anfänger-Themen 13
X String Sonderzeichen/Zahlen erkennen Java Basics - Anfänger-Themen 3
P System - Tage erkennen ( System Time ?) Java Basics - Anfänger-Themen 3
M Betriebssystem erkennen? Java Basics - Anfänger-Themen 12
lumo Collections Array - erkennen von positionsänderungen Java Basics - Anfänger-Themen 5
M Java-Prog soll Texte innerhalb Bildern erkennen Java Basics - Anfänger-Themen 2
S Leere Datei erkennen Java Basics - Anfänger-Themen 5
E ActionListener in anderer Klasse erkennen Java Basics - Anfänger-Themen 13
Kukulkan Java-Version (ME, SE) erkennen und darauf reagieren? Java Basics - Anfänger-Themen 35
E Position erkennen und überlappungen feststellen Java Basics - Anfänger-Themen 4
3 Leerzeichen erkennen Java Basics - Anfänger-Themen 3
A Gruppen von Namen erkennen Java Basics - Anfänger-Themen 21
M In Router einloggen und PCs im Netzwerk erkennen Java Basics - Anfänger-Themen 18
M ziffer in zahl erkennen mit boolean Java Basics - Anfänger-Themen 12
D Zahl erkennen Java Basics - Anfänger-Themen 4
T Image Position erkennen Java Basics - Anfänger-Themen 6
S Sonderzeichen in einem String erkennen Java Basics - Anfänger-Themen 20
S Filelock erkennen Java Basics - Anfänger-Themen 6
A Angeschlossenes Gerät am Com Port erkennen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben