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
Labels
refactoring
Suggested code refactoring
** 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.
The text was updated successfully, but these errors were encountered: