Skip to content
This repository has been archived by the owner on Dec 30, 2024. It is now read-only.

[Refactor] Move pre-/post-/infix output printing functionality to Visitor design pattern #4

Open
tommens opened this issue Dec 28, 2023 · 0 comments
Labels
refactoring Suggested code refactoring

Comments

@tommens
Copy link
Collaborator

tommens commented Dec 28, 2023

** Issue **
Currently the functionality of converting an expression to a string using prefix, postfix or infix notation is hardcoded as part of the Expression class hierarchy. More specifically, it is defined in the toString(Notation) method of the Operation class. This does not make much sense, since the way of outputing an expression in string format should be independent of how the expression is structured and represented internally.
A cleaner solution would be to use the Visitor design patterns, that is already present for evaluating expressions. A new visitor could be implemented for outputting arithmetic expressions as strings using different possible notations (prefix, postfix, infix traversal).
At the same time, the "counting methods" to count the numbers and operations and depth of an expression could also be moved out of the expression hierarchy in another visitor.

This refactoring will require to change some of the unit tests as well, since it will change the current way in which the code is structured.

** Classification **
suggested code refactoring

** Related issues **
This proposed refactoring is related to bug issue #3 that will, in principle, be resolved if the proposed refactoring is carried out correctly.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
refactoring Suggested code refactoring
Projects
None yet
Development

No branches or pull requests

1 participant