Skip to content

Commit 63b48e8

Browse files
committed
feat: Calculator 클래스 구현
1 parent fb442a7 commit 63b48e8

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package calculator;
2+
3+
import calculator.engine.Repository.Memorizer;
4+
import calculator.engine.io.Input;
5+
import calculator.engine.io.Output;
6+
import calculator.engine.model.InitCalculator;
7+
import calculator.engine.model.PostfixCalculator;
8+
import java.util.List;
9+
public class Calculator implements Runnable{
10+
private final Input input;
11+
private final Output output;
12+
private final Memorizer repository;
13+
private final InitCalculator initCalculator;
14+
private final PostfixCalculator postfixCalculator;
15+
public Calculator(Input input, Output output, Memorizer repository, InitCalculator initCalculator, PostfixCalculator postfixCalculator) {
16+
this.input = input;
17+
this.output = output;
18+
this.repository = repository;
19+
this.initCalculator = initCalculator;
20+
this.postfixCalculator = postfixCalculator;
21+
}
22+
public void run() {
23+
while (true) {
24+
output.consoleMenu();
25+
int command = input.selectConsoleNumber();
26+
27+
switch (command) {
28+
case 1:
29+
output.MemoryCalculator(repository.getMemoroizer());
30+
break;
31+
case 2:
32+
String expression = input.inputCalculator();
33+
List<String> result = InitCalculator.calculate(expression);
34+
int s = postfixCalculator.calculate(result);
35+
output.printCalculator(s);
36+
String restoreValue = expression + " = " + s;
37+
repository.storeHistory(restoreValue);
38+
break;
39+
default:
40+
output.outputError();
41+
break;
42+
}
43+
}
44+
}
45+
}

0 commit comments

Comments
 (0)