Builder_Pattern

master
3009594 2024-09-23 20:32:36 +02:00
parent f198b9b7a5
commit 9c2ca9f38c
9 changed files with 111 additions and 4 deletions

View File

@ -0,0 +1,77 @@
package DesignPatterns.Erzeugungsmuster_CreationalPatterns.BuilderPatter;
public class BuilderPattern {
// Private Felder
private String teig;
private String soße;
private String käse;
private String topping;
// Private Konstruktor, nur der Builder kann diesen aufrufen
private BuilderPattern(Builder builder) {
this.teig = builder.teig;
this.soße = builder.soße;
this.käse = builder.käse;
this.topping = builder.topping;
}
// Statische innere Klasse Builder
public static class Builder {
// Dieselben Felder wie in der äußeren Klasse
private String teig;
private String soße;
private String käse;
private String topping;
// Methoden für das Setzen der Felder, die den Builder zurückgeben
public Builder teig(String teig) {
this.teig = teig;
return this;
}
public Builder soße(String soße) {
this.soße = soße;
return this;
}
public Builder käse(String käse) {
this.käse = käse;
return this;
}
public Builder topping(String topping) {
this.topping = topping;
return this;
}
// Die build-Methode erstellt das Pizza-Objekt
public BuilderPattern build() {
return new BuilderPattern(this);
}
}
// Methode, um die Pizza anzuzeigen
public void anzeigen() {
System.out.println("Pizza mit " + teig + " Teig, " + soße + " Soße, " +
käse + " Käse und " + (topping != null ? topping : "ohne") + " Topping.");
}
public static void main(String[] args) {
// Erstellen einer Pizza mit allen Zutaten
BuilderPattern pizza1 = new BuilderPattern.Builder()
.teig("Dünn")
.soße("Tomaten")
.käse("Mozzarella")
.topping("Salami")
.build();
// Erstellen einer Pizza ohne Topping
BuilderPattern pizza2 = new BuilderPattern.Builder()
.teig("Dick")
.soße("Tomaten")
.build();
pizza1.anzeigen(); // Ausgabe: Pizza mit Dünn Teig, Tomaten Soße, Mozzarella Käse und Salami Topping.
pizza2.anzeigen(); // Ausgabe: Pizza mit Dick Teig, Tomaten Soße, Cheddar Käse und ohne Topping.
}
}

View File

@ -13,6 +13,15 @@ public class Graph {
public void add_Knoten(Knoten knote) { public void add_Knoten(Knoten knote) {
knoten.add(knote); knoten.add(knote);
} }
public ArrayList<Knoten> getKnoten() {
return knoten;
}
public void zeige_Alle_Knoten() {
System.out.println("Alle Knoten, die auf dem Graph sind: ");
for (Knoten k : knoten)
System.out.println("Knote: " + k.getValue());
}
} }

View File

@ -17,4 +17,7 @@ public class Kanten {
Knoten partner = (knote == knote1)? knote2 : knote1; Knoten partner = (knote == knote1)? knote2 : knote1;
return partner; return partner;
} }
} }

View File

@ -17,10 +17,28 @@ public class Knoten {
this.kanten.add(kante); this.kanten.add(kante);
} }
public ArrayList<Knoten> get_partner() { public void get_partner() {
ArrayList<Knoten> alle_knoten = new ArrayList<>(); ArrayList<Knoten> alle_knoten = new ArrayList<>();
for (Kanten k : kanten) for (Kanten k : kanten)
alle_knoten.add(k.getpartner(this)); alle_knoten.add(k.getpartner(this));
return alle_knoten;
System.out.println("Alle Knoten, die mit 'knote " + this.getValue() + "' Verbunden sind: ");
for (Knoten knoten:alle_knoten)
System.out.println("Knote: " + knoten.getValue());
} }
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
public ArrayList<Kanten> getKanten() {
return kanten;
}
} }

View File

@ -12,12 +12,12 @@ public class Main {
Knoten knote3 = new Knoten(3); Knoten knote3 = new Knoten(3);
Kanten k2 = new Kanten(knote1,knote3); Kanten k2 = new Kanten(knote1,knote3);
System.out.println(knote1.get_partner()); knote3.get_partner();
graph.add_Knoten(knote1); graph.add_Knoten(knote1);
graph.add_Knoten(knote2); graph.add_Knoten(knote2);
graph.add_Knoten(knote3); graph.add_Knoten(knote3);
System.out.println(graph.knoten); graph.zeige_Alle_Knoten();
} }
} }