Refactoring: Verschlankung der Fassade durchgeführt.

refactoringFassade
hummel 2024-05-16 11:02:10 +02:00
parent fead586452
commit 95297fd480
4 changed files with 20 additions and 36 deletions

View File

@ -1,6 +1,6 @@
package de.hs_mannheim.informatik.games.kniffel.domain; package de.hs_mannheim.informatik.games.kniffel.domain;
import java.util.ArrayList; import java.util.List;
public class Spiel { public class Spiel {
private Spieler[] spieler; private Spieler[] spieler;
@ -8,7 +8,7 @@ public class Spiel {
private int aktuellerSpieler; private int aktuellerSpieler;
private Würfelbecher becher; private Würfelbecher becher;
public Spiel(ArrayList<String> spielernamen) { public Spiel(List<String> spielernamen) {
spieleranzahl = spielernamen.size(); spieleranzahl = spielernamen.size();
spieler = new Spieler[spieleranzahl]; spieler = new Spieler[spieleranzahl];
@ -22,8 +22,8 @@ public class Spiel {
becher.würfle(); becher.würfle();
} }
public Gewinnkarte getGewinnkarteAktuellerSpieler() { public String getGewinnkartentextAktuellerSpieler() {
return spieler[aktuellerSpieler].getGewinnkarte(); return spieler[aktuellerSpieler].getGewinnkarte().toString();
} }
public String getNameAktuellerSpieler() { public String getNameAktuellerSpieler() {

View File

@ -1,32 +1,14 @@
package de.hs_mannheim.informatik.games.kniffel.facade; package de.hs_mannheim.informatik.games.kniffel.facade;
import java.util.ArrayList; import java.util.List;
import de.hs_mannheim.informatik.games.kniffel.domain.Gewinnkarte;
import de.hs_mannheim.informatik.games.kniffel.domain.Spiel; import de.hs_mannheim.informatik.games.kniffel.domain.Spiel;
public class KniffelApi { public class KniffelApi {
private Spiel spiel;
public void starteSpiel(ArrayList<String> spielernamen, boolean starWarsModus) {
public Spiel starteSpiel(List<String> spielernamen, boolean starWarsModus) {
// TODO: StarWars über Vererbung einbauen? // TODO: StarWars über Vererbung einbauen?
spiel = new Spiel(spielernamen); return new Spiel(spielernamen);
} }
public Gewinnkarte getGewinnkarte() {
return spiel.getGewinnkarteAktuellerSpieler();
}
public String getNameAktuellerSpieler() {
return spiel.getNameAktuellerSpieler();
}
public int[] wurfDurchführen(String... würfel) {
return spiel.wurfDurchführen(würfel);
}
public boolean punkteEintragen(int kategorie) {
return spiel.punkteEintragen(kategorie);
}
} }

View File

@ -3,11 +3,13 @@ package de.hs_mannheim.informatik.games.kniffel.tui;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Scanner; import java.util.Scanner;
import de.hs_mannheim.informatik.games.kniffel.domain.Spiel;
import de.hs_mannheim.informatik.games.kniffel.facade.KniffelApi; import de.hs_mannheim.informatik.games.kniffel.facade.KniffelApi;
public class SpielStart { public class SpielStart {
private Scanner kb; private Scanner kb;
private KniffelApi api; private KniffelApi api;
private Spiel spiel;
public SpielStart(Scanner kb, KniffelApi api) { public SpielStart(Scanner kb, KniffelApi api) {
this.kb = kb; this.kb = kb;
@ -41,9 +43,9 @@ public class SpielStart {
String sw = kb.nextLine(); String sw = kb.nextLine();
api.starteSpiel(spielernamen, sw.toLowerCase().equals("j")); spiel = api.starteSpiel(spielernamen, sw.toLowerCase().equals("j"));
new SpielrundeSpielen(kb, api).verarbeiteEingabe(); new SpielrundeSpielen(kb, spiel).verarbeiteEingabe();
} }
} }

View File

@ -2,15 +2,15 @@ package de.hs_mannheim.informatik.games.kniffel.tui;
import java.util.Scanner; import java.util.Scanner;
import de.hs_mannheim.informatik.games.kniffel.facade.KniffelApi; import de.hs_mannheim.informatik.games.kniffel.domain.Spiel;
public class SpielrundeSpielen { public class SpielrundeSpielen {
private Scanner kb; private Scanner kb;
private KniffelApi api; private Spiel spiel;
public SpielrundeSpielen(Scanner kb, KniffelApi api) { public SpielrundeSpielen(Scanner kb, Spiel spiel) {
this.kb = kb; this.kb = kb;
this.api = api; this.spiel = spiel;
} }
public void verarbeiteEingabe() { public void verarbeiteEingabe() {
@ -19,7 +19,7 @@ public class SpielrundeSpielen {
String[] zuWürfeln = new String[0]; String[] zuWürfeln = new String[0];
for (int i = 1; i <= 3; i++) { for (int i = 1; i <= 3; i++) {
int[] würfelwerte = api.wurfDurchführen(zuWürfeln); int[] würfelwerte = this.spiel.wurfDurchführen(zuWürfeln);
System.out.print(i + ". Wurf: "); System.out.print(i + ". Wurf: ");
for (int w : würfelwerte) { for (int w : würfelwerte) {
System.out.print(w + " "); System.out.print(w + " ");
@ -50,7 +50,7 @@ public class SpielrundeSpielen {
System.out.print("> "); System.out.print("> ");
int kategorie= Integer.parseInt(kb.nextLine()); int kategorie= Integer.parseInt(kb.nextLine());
if (!api.punkteEintragen(kategorie)) if (!this.spiel.punkteEintragen(kategorie))
System.out.println("Kategorie bereits belegt, bitte andere wählen."); System.out.println("Kategorie bereits belegt, bitte andere wählen.");
else else
break; break;
@ -62,8 +62,8 @@ public class SpielrundeSpielen {
private void gewinnkarteAusgeben() { private void gewinnkarteAusgeben() {
System.out.println(); System.out.println();
System.out.println("##################################################"); System.out.println("##################################################");
System.out.println("Gewinnkarte von " + api.getNameAktuellerSpieler()); System.out.println("Gewinnkarte von " + this.spiel.getNameAktuellerSpieler());
System.out.println(api.getGewinnkarte().toString()); System.out.println(this.spiel.getGewinnkartentextAktuellerSpieler());
System.out.println("##################################################"); System.out.println("##################################################");
System.out.println(); System.out.println();
} }