-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathCalculatorDisplay.java
More file actions
36 lines (26 loc) · 1.51 KB
/
CalculatorDisplay.java
File metadata and controls
36 lines (26 loc) · 1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package step2;
import java.util.Scanner;
public class CalculatorDisplay {
private final CalculatePreparator calculatePreparator;
// 계산기 재료를 준비해주는 인터페이스를 의존 관계로 받는다.
// 구현체를 변경하는 방식으로 계산기 기능을 다르게 사용할 수 있다.
public CalculatorDisplay(CalculatePreparator calculatePreparator) {
this.calculatePreparator = calculatePreparator;
}
// 양식에 맞는 문자열 수식을 넣으면 전체 계산 결과를 반환한다
private int calculate(String userInputExpression) {
Calculator calculator = calculatePreparator.create(userInputExpression); // 계산 준비 객체에서 계산기 객체를 만든다.
return calculator.calculate(); // 계산기 객체가 계산 결과를 반환한다.
}
// 테스트 코드 실행용 메서드(scanner 사용 제한)
public int calculateForTest(String userInputExpression) {
Calculator calculator = calculatePreparator.create(userInputExpression); // 계산 준비 객체에서 계산기 객체를 만든다.
return calculator.calculate(); // 계산기 객체가 계산 결과를 반환한다.
}
public void displayConsole() {
Scanner scanner = new Scanner(System.in);
System.out.println("문자열 계산식을 입력하면 계산 결과를 반환합니다.");
int calculateResult = calculate(scanner.nextLine());
System.out.println("calculateResult = " + calculateResult);
}
}