Screen helpers bypass the game logic layer and call DatabaseManager directly.
DatabaseManager
Files that violate layering:
LobbyValidator.java:5
LobbyFlowController.java:5
SetupFlowController.java:5
GameNetworkHandler.java:8
What to do:
states/
model/
DatabaseManager.getInstance()
grep -r "DatabaseManager" screens/
Ref: Architecture doc claims strict one-way GUI → Logic → Database layering.
The text was updated successfully, but these errors were encountered:
refactor: enforce GUI→Logic→Database layer separation (#55)
2c3a751
Route all database calls through state classes instead of calling DatabaseManager directly from screen helpers. - LobbyState: add validateLobby, listenForOpponentReady, startGame, listenForGameStart wrapper methods - SetupState: add confirmSetup, unconfirmSetup, listenForBothSetupReady, getOpponentBoard, getFirebaseApi wrapper methods - LobbyValidator: route through LobbyState instead of DatabaseManager - LobbyFlowController: route through LobbyState - SetupFlowController: route through SetupState - GameNetworkHandler: accept FirebaseAPI via constructor injection - Thread LobbyState through MainMenuScreen→MainMenuUI→JoinGamePanel - Thread FirebaseAPI through SetupScreen→GameScreen→GameNetworkHandler Result: zero DatabaseManager references in screens/ package
francinv
No branches or pull requests
Screen helpers bypass the game logic layer and call
DatabaseManagerdirectly.Files that violate layering:
LobbyValidator.java:5LobbyFlowController.java:5SetupFlowController.java:5GameNetworkHandler.java:8What to do:
states/or new service classes inmodel/DatabaseManager.getInstance()directlygrep -r "DatabaseManager" screens/should return zero resultsRef: Architecture doc claims strict one-way GUI → Logic → Database layering.
The text was updated successfully, but these errors were encountered: