refactor OutputSystem
This commit is contained in:
35
app/src/main/java/chess/controller/event/GameAdaptator.java
Normal file
35
app/src/main/java/chess/controller/event/GameAdaptator.java
Normal file
@@ -0,0 +1,35 @@
|
||||
package chess.controller.event;
|
||||
|
||||
import chess.model.Color;
|
||||
import chess.model.Coordinate;
|
||||
|
||||
public class GameAdaptator implements GameListener {
|
||||
|
||||
@Override
|
||||
public void playerTurn(Color color) {}
|
||||
|
||||
@Override
|
||||
public void winnerIs(Color color) {}
|
||||
|
||||
@Override
|
||||
public void kingIsInCheck() {}
|
||||
|
||||
@Override
|
||||
public void kingIsInMat() {}
|
||||
|
||||
@Override
|
||||
public void patSituation() {}
|
||||
|
||||
@Override
|
||||
public void hasSurrendered(Color color) {}
|
||||
|
||||
@Override
|
||||
public void gameStarted() {}
|
||||
|
||||
@Override
|
||||
public void promotePawn(Coordinate pieceCoords) {}
|
||||
|
||||
@Override
|
||||
public void updateDisplay() {}
|
||||
|
||||
}
|
||||
68
app/src/main/java/chess/controller/event/GameDispatcher.java
Normal file
68
app/src/main/java/chess/controller/event/GameDispatcher.java
Normal file
@@ -0,0 +1,68 @@
|
||||
package chess.controller.event;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import chess.model.Color;
|
||||
import chess.model.Coordinate;
|
||||
|
||||
public class GameDispatcher implements GameListener{
|
||||
|
||||
private final List<GameListener> listeners;
|
||||
|
||||
public GameDispatcher() {
|
||||
this.listeners = new ArrayList<>();
|
||||
}
|
||||
|
||||
public void addListener(GameListener listener) {
|
||||
this.listeners.add(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void playerTurn(Color color) {
|
||||
this.listeners.forEach((l) -> l.playerTurn(color));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void winnerIs(Color color) {
|
||||
this.listeners.forEach((l) -> l.winnerIs(color));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void kingIsInCheck() {
|
||||
this.listeners.forEach((l) -> l.kingIsInCheck());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void kingIsInMat() {
|
||||
this.listeners.forEach((l) -> l.kingIsInMat());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void patSituation() {
|
||||
this.listeners.forEach((l) -> l.patSituation());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hasSurrendered(Color color) {
|
||||
this.listeners.forEach((l) -> l.hasSurrendered(color));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gameStarted() {
|
||||
this.listeners.forEach((l) -> l.gameStarted());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void promotePawn(Coordinate pieceCoords) {
|
||||
this.listeners.forEach((l) -> l.promotePawn(pieceCoords));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateDisplay() {
|
||||
this.listeners.forEach((l) -> l.updateDisplay());
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
25
app/src/main/java/chess/controller/event/GameListener.java
Normal file
25
app/src/main/java/chess/controller/event/GameListener.java
Normal file
@@ -0,0 +1,25 @@
|
||||
package chess.controller.event;
|
||||
|
||||
import chess.model.Color;
|
||||
import chess.model.Coordinate;
|
||||
|
||||
public interface GameListener {
|
||||
|
||||
void playerTurn(Color color);
|
||||
|
||||
void winnerIs(Color color);
|
||||
|
||||
void kingIsInCheck();
|
||||
|
||||
void kingIsInMat();
|
||||
|
||||
void patSituation();
|
||||
|
||||
void hasSurrendered(Color color);
|
||||
|
||||
void gameStarted();
|
||||
|
||||
void promotePawn(Coordinate pieceCoords);
|
||||
|
||||
void updateDisplay();
|
||||
}
|
||||
Reference in New Issue
Block a user