계산기 만들기
1. Calculator에서 사칙연산 구현하기
2. 사칙연산을 각각 클래스로 만들어서 이용하기
3. 추상클래스를 만들어 사칙연산 클래스를 연결하기
4. Calculator에서 3번의 추상클래스를 이용하기
연산 클래스들을 AbstractOperation(추상 클래스)를 사용하여 추상화하고 Calculator 클래스의 내부 코드를 변경합니다.
Calculator.java
public class Calculator {
public AbstractOperation operation;
public Calculator(AbstractOperation operation) {
this.operation = operation;
}
public void setCalculator(AbstractOperation operation) {
this.operation = operation;
}
public double calculate(int firstNumber, int secondNumber) {
return this.operation.operate(firstNumber, secondNumber);
}
}
AbstractOperation.java
public abstract class AbstractOperation{
public abstract double operate(int a, int b);
}
AddOperation.java
public class AddOperation extends AbstractOperation {
@Override
public double operate(int a, int b) {
return a + b;
}
}
+빼기, 곱하기, 나누기
Main.java
public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator(new DivideOperation());
System.out.println(calculator.calculate(10, 4));
calculator.setCalculator(new AddOperation());
System.out.println(calculator.calculate(10, 4));
}
}
3번에서 추상클래스와 사칙연산간의 관계는 이해하고 작성했으나 4번에서 AbstractOperation을 선언하고 생성자와 Setter로 연결하는 법을 생각해내지 못했음.