Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dungeon-API: Ersetze "Game.currentLevel().xyz()" durch "Game.xyz()" #1625

Open
cagix opened this issue Aug 17, 2024 · 0 comments
Open

Dungeon-API: Ersetze "Game.currentLevel().xyz()" durch "Game.xyz()" #1625

cagix opened this issue Aug 17, 2024 · 0 comments
Labels
bug Something isn't working dungeon

Comments

@cagix
Copy link
Member

cagix commented Aug 17, 2024

Das Pattern kommt recht häufig vor: Game.currentLevel().machWasMitDemLevel().

Aus Architektursicht ist das Feature-Neid, Game hat etwas, auf dem ich direkt arbeiten will. Durch das direkte Abfragen zerstöre ich auch die Kapselung.

Aus Kundensicht will ich vom Game einfach nur ein zufälliges Tile bekommen. Ob da noch ein Level oder was involviert ist, interessiert mich eigentlich nicht (oder sollte mich nicht interessieren). Der zusätzliche Aufruf .currentLevel() erzeugt mentalen Clutter ...

Wenn ich das richtig sehe, gibt es eh nur ein aktuelles Level, oder? Ich würde die Methode randomTile(X) in Game anbieten. Intern kann das ja direkt auf currentLevel weitergeleitet werden, aber ich würde dem Kunden damit einen zusätzlichen Schritt sparen.

Das klappt freilich nicht mehr, wenn parallel mehrere Level existieren können und ich auf all diesen Leveln arbeiten könnte.


edit: es geht darum, die modellierung zu prüfen/zu überdenken und dann den code aufzuräumen, nicht nur einfach noch eine weitere schnittstelle anzubieten.

@cagix cagix added bug Something isn't working dungeon labels Aug 17, 2024
tgrothe added a commit to tgrothe/Dungeon that referenced this issue Jan 4, 2025
Fixes Dungeon-CampusMinden#1625

Add a new method `randomTile(LevelElement elementType)` to the `Game` class.

* **Game.java**
  - Add a new method `randomTile(LevelElement elementType)` that calls `currentLevel().randomTile(elementType)`.
  - Update the Javadoc for the new method to explain its purpose.

* **GameTest.java**
  - Add a new test method to verify the functionality of `Game.randomTile(LevelElement elementType)`.

---

For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/Dungeon-CampusMinden/Dungeon/issues/1625?shareId=XXXX-XXXX-XXXX-XXXX).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working dungeon
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant