Skip to content

Removing Conditional with polymorphism#1127

Open
sarthak3136 wants to merge 3 commits intotoolbox4minecraft:masterfrom
sarthak3136:ConditionalPolymorphism
Open

Removing Conditional with polymorphism#1127
sarthak3136 wants to merge 3 commits intotoolbox4minecraft:masterfrom
sarthak3136:ConditionalPolymorphism

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant