-
P1_C3_4. 사칙연산 계산기 구현Anna belly belly hard/java_spring 2023. 5. 14. 15:05반응형
<요구사항>
• 간단한 사칙연산을 할 수 있다.
• 양수로만 계산할 수 있다.
• 나눗셈에서 0을 나누는 경우 IllegalArgument 예외를 발생시킨다.
• MVC패턴(Model-View-Controller) 기반으로 구현한다.control(comand)+alt(option)+l ;자동정렬
테스트 코드를 하나로
enum 만들어줌.
package org.example.Calculator; import java.util.Arrays; public enum ArithmeticOperator { ADDITION("+") { @Override public int arithmeticCalculate(int operand1, int operand2) { return operand1 + operand2; } }, SUBTRACTION("-") { @Override public int arithmeticCalculate(int operand1, int operand2) { return operand1 - operand2; } }, MULTIPLICATION("*") { @Override public int arithmeticCalculate(int operand1, int operand2) { return operand1 * operand2; } }, DIVISION("/") { @Override public int arithmeticCalculate(int operand1, int operand2) { return operand1 / operand2; } }; private final String operator; ArithmeticOperator(String operator) { this.operator = operator; } public abstract int arithmeticCalculate(final int operand1, final int operand2); // 외부 노출되는 public interface public static int calculate(int operand1, String operator, int operand2) { ArithmeticOperator arithmeticOperator = Arrays.stream(values()) .filter(v -> v.operator.equals(operator)) .findFirst() .orElseThrow(() -> new IllegalArgumentException("올바른 사칙연산이 아닙니다.")); return arithmeticOperator.arithmeticCalculate(operand1,operand2); } }
test 성공! 리팩토링 성공!
반응형'Anna belly belly hard > java_spring' 카테고리의 다른 글
P1_C3_3. 객체지향 개념정리 (0) 2023.05.14 P1_C3_2. 테스트 코드- 비밀번호 유효성 검증기 만들기 (0) 2023.05.13 P1_C3_1. 테스트 코드 작성하기 (0) 2023.05.12 P1_C2_3. 도커 및 도커 컴포즈 , 도커를 이용한 개발환경 만들기(MySQL 도커 연동하기) (0) 2023.05.12 P1_C2_2. 웹 개발 환경 구성하기 (0) 2023.05.12