- 객체지향적인 코드로 콘솔객 계산기 구현하기
- 더하기
- 빼기
- 곱하기
- 나누기
- 우선순위(사칙연산)
- 테스트 코드 구현하기
- 계산 이력을 맵으로 데이터 저장기능 만들기
- 애플리케이션이 동작하는 동안 데이터베이스 외에 데이터를 저장할 수 있는 방법을 고안해보세요.
- 정규식 사용 - (숫자, 연산자, 수식 판별)
1. 조회
2. 계산
선택 : 2
1 + 2
3
1. 조회
2. 계산
선택 : 2
1 + 2 * 3
7
1. 조회
2. 계산
선택 : 1
1 + 2 = 3
1 + 2 * 3 = 7
선택 : 2
3 - 2 * 2
-1
Controller
: 입력을 받고, 그 입력을 Validator들로 검사한 후 Calcuator로 계산해 Repository에 저장하는 역할을 하는 인터페이스 입니다.Validator
: 입력이 특정 조건을 만족하는지 검사하기 위한 인터페이스입니다.Calculator
: String 입력을 받아, double형 계산 결과를 반환하는 인터페이스 입니다.Repository
: 계산 이력을 저장하고, 조회 할 수 있게 하는 인터페이스입니다.
-
FormValidator
: 주어진 식의 괄호짝이 맞는지 검사하는 객체 입니다. -
MathExpressionValidator
: 주어진 식이 올바른 식 인지를 검사하는 객체 입니다. -
FormValidator
: 입력이 받고자하는 형태로 들어오는지 검사하는 객체 입니다.받고자 하는 형태 - 숫자(공백)연산자(공백)숫자 (단, 가장 첫 글자에 연산자를 허용하지 않음) ex) 1 + 2 * ( 1 + 3 )
Console
: Controller를 구현한 클래스입니다PostfixCalculator
: 후위 연산으로 Calculator를 구현한 객체입니다.InMemoryRepository
: 계산 이력을 HashMap에 저장하고, 조회 할 수 있게 하는 객체입니다.