Skip to content
New issue

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

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

Already on GitHub? # to your account

Removing Conditional with polymorphism #1127

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

sarthak3136
Copy link

The code has been refactored by re-structuring the components of the file. The following file have been changed.

FilePath of Files Changed

src/main/java/amidst/mojangapi/world/WorldBuilder.java
src/main/java/amidst/mojangapi/world/player/WorldPlayerType.java

FilePath of new Files Created

src/main/java/amidst/mojangapi/world/player/BothWorldPlayerType.java
src/main/java/amidst/mojangapi/world/player/MultiplayerWorldPlayerType.java
src/main/java/amidst/mojangapi/world/player/NoneWorldPlayerType.java
src/main/java/amidst/mojangapi/world/player/SingleplayerWorldPlayerType.java

Type Of Refactoring Done

Removing Conditional With Ploymorphism

Improvements Made

  • Four new classes - BothWorldPlayerType, SingleplayerWorldPlayerType, MultiplayerWorldPlayerType, and NoneWorldPlayerType - have been created.
  • The from() method in each of the new classes takes a SaveGame object as input and returns an instance of the corresponding WorldPlayerType.
  • The from() method in the WorldPlayerType class has been modified to return an instance of one of the new classes instead of a WorldPlayerType object.
  • The if-else statement in the from() method has been modified to create an instance of the appropriate new class instead of returning a WorldPlayerType object.

Overall, the changes involve refactoring the WorldPlayerType class to use polymorphism instead of a conditional statement to determine the appropriate behaviour based on the state of the SaveGame object. The result is a more modular and extensible code structure.

Notes for Reviewers

Thank you for taking the time to review this pull request. If you have any questions or suggestions for improvement, please don't hesitate to let me know.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant