입력값을 바탕으로 if 분기를 통해 각각의 기능을 수행했다면, Enum을 활용하여 열거형으로 기능을 수행하도록 수정하였다. 각 메뉴는 할당된 인스턴스를 가지며 기능을 수행한다.
public enum MenuEnum {
HISTORY(new HistoryMenu(), 1, "계산 이력"),
CALCULATE(new CalculateMenu(), 2, "계산"),
EXIT(new ExitMenu(), 3, "종료");
private final MenuInterface menu;
private final int menuNumber;
private final String description;
...
Calculator에 너무 많은 로직이 담겨있다는 피드백을 받았다. 기존 Calculator는 다음과 같은 기능을 수행했다.