TIL

01/08(์›”) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java 11์ผ์ฐจ TIL - ๊ณ„์‚ฐ๊ธฐ๋งŒ๋“ค๊ธฐ

๊ฐ์ž๊ฐœ๋ฐœ๊พผ 2024. 1. 8. 20:42

 

 

๐Ÿ“–  ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ

  • ๊ณ„์‚ฐ๊ธฐ

 

๐Ÿฅ”  Step 1

Calculator Class ๋งŒ๋“ค๊ธฐ

 

public class Calculator {

    public double calculate(String operator, int firstNumber, int secondNumber) {
        double answer = 0;

        if(operator.equals("+")){
            answer = firstNumber + secondNumber;
        }else if(operator.equals("-")){
            answer = firstNumber - secondNumber;
        }else if(operator.equals("*")){
            answer = firstNumber * secondNumber;
        }else if(operator.equals("/")){
            answer = firstNumber / secondNumber;
        }

        return answer;
    }
}

 

Main Class ๋งŒ๋“ค๊ธฐ

 

public class Main {
    public static void main(String[] args) {
        Calculator calculator  = new Calculator();
        System.out.println(calculator.calculate("+", 10, 20));
        System.out.println(calculator.calculate("*", 10, 20));
    }
}

 

 

๐Ÿฅ”  Step 2

- ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๋กœ ๋‚˜๋ˆ„๊ธฐ

 

Calculator

 

public class Calculator {

    private AbstractOperation operation;

    public Calculator(AbstractOperation operation) {
        this.operation = operation;
    }

    public void setOperation(AbstractOperation operation) {
        this.operation = operation;
    }

    public double calculate(int firstNumber, int secondNumber) {
        double answer = 0;
        answer = operation.operate(firstNumber, secondNumber);
        return answer;
    }

}

 

AbstractOperation

 

public abstract class AbstractOperation {
    public abstract double operate(int firstNumber, int secondNumber);
}

 

AddOperation

 

public class AddOperation extends AbstractOperation{
    @Override
    public double operate(int firstNumber, int secondNumber){
        return firstNumber + secondNumber;
    }
}

 

SubstractOperation

 

public class SubstractOperation extends AbstractOperation{
    @Override
    public double operate(int firstNumber, int secondNumber){
        return firstNumber - secondNumber;
    }
}

 

MultiplyOperation

 

public class MultiplyOperation extends AbstractOperation{
    @Override
    public double operate(int firstNumber, int secondNumber){
        return firstNumber * secondNumber;
    }
}

 

DivideOperation

 

public class DivideOperation extends AbstractOperation{
    @Override
    public double operate(int firstNumber, int secondNumber){
        return firstNumber / secondNumber;
    }
}

 

Main

 

public class Main {
    public static void main(String[] args) {
        Calculator calculator  = new Calculator(new AddOperation());
        System.out.println(calculator.calculate(10, 20));
        calculator.setOperation(new MultiplyOperation());
        System.out.println(calculator.calculate(10,20));
    }
}

 

 

 

 

 

 

๐Ÿ“š  ์˜ค๋Š˜์˜ ํšŒ๊ณ 

์˜ค๋Š˜์€ ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‚ฌ์น™์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•œ

๊ณ„์‚ฐ๊ธฐ๋ฅผ ๋งŒ๋“ค์–ด ๋ดค์Šต๋‹ˆ๋‹ค.

 

ํด๋ž˜์Šค.. ์–ด๋ ต๋„ค์š”

์ž๋ฐ”.. ์–ด๋ ต๋„ค์š”