Today I Learned ๐ฉ๐ฝ๐ป
- ์๊ณ ๋ฆฌ์ฆ 17, 18๋ฒ
- ์๋ฐ ๋ฌธ๋ฒ ์ข ํฉ๋ฐ 3์ฃผ์ฐจ ๊ฐ์(์์, ์ถ์ํด๋์ค, ๋คํ์ฑ, ์ธํฐํ์ด์ค ๋ฑ๋ฑ)
- ์๋ฐ ๋ฌธ๋ฒ ์ข ํฉ๋ฐ 3์ฃผ์ฐจ ์์
- ์๋ฐ ๋ฌธ๋ฒ ์ข ํฉ๋ฐ 4์ฃผ์ฐจ ๊ฐ์ ์๋ถ๋ถ
์๊ณ ๋ฆฌ์ฆ 18๋ฒ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ๋ฌธ์ ๋ ๊ผผ๊ผผํ ์ฝ์ด์ผํ๋ค๋ ๊ฒ์ ๋ ๊นจ๋ฌ์๋ค..
2024.11.14 - [Algorithm] - [Java] ๋ฌธ์์ด์ ์ ์๋ก ๋ฐ๊พธ๊ธฐ
s์ ๋งจ์์๋ ๋ถํธ(+, -)๊ฐ ์ฌ ์ ์๋ค๋ ์ ํ ์กฐ๊ฑด์์ ์์๋ง ์๊ฐํด๋ฒ๋ ธ๋ค..;;
์ฒ์์๋ if(s.charAt(0) == '-' || s.charAt(0) == '+') ์ด ์กฐ๊ฑด๋ฌธ์ ์์ฑํ์ง ์์๋ค.
๊ทธ๋ฌ๋๋ ํ ์คํธ์ผ์ด์ค 2๊ฐ๊ฐ ์ค๋ต์ผ๋ก ๋์์ ๋ญ์ง? ๊ณ ๋ฏผํด๋ณด๋ ๋ฌธ์์ด์์ '+'๊ฐ ๋ถ๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐ ๋ชป ํ๋ ๊ฒ์ด์๋ค...@@๐ฅน
๊ทธ๋ฆฌ๊ณ ์ด์ ๋๋ด์ง ๋ชปํ ์๋ฐ 3์ฃผ์ฐจ ๊ฐ์๋ฅผ ๋ค์๋ค. ์์, ์ถ์ํด๋์ค, ๋คํ์ฑ, ์ธํฐํ์ด์ค ๋ฑ๋ฑ ์๋ฐ์ ์ค์ํ ๊ฐ๋ ๋ค์ ๋ฐฐ์ ๋ค!
์๋ฐ ๊ฐ๋ ์ ๋ฐฐ์ด์ง 4๋ ๋์๊ฑฐ ๊ฐ์๋ฐ ๋ค ๊น๋จน์ด์ ์๋ก์ด ๋ง์์ผ๋ก ๋ค์ ๋ฐฐ์ ๋ค..
๊ทธ๋ฆฌ๊ณ ์์ ํ๋ฉด์ ๋ณต์ตํ๋ ๋๋์ผ๋ก gogo๐จ๐จ๐จ
# 3์ฃผ์ฐจ ์์ step3
- Calculator ํด๋์ค์ ํฌํจ๊ด๊ณ๋ฅผ ๋งบ๊ณ ์์ฑ์๋ฅผ ํตํด ๊ฐ๊ฐ์ ์ฐ์ฐ ํด๋์ค ํ์ ์ ํ๋์ ๊ฐ์ฒด๋ฅผ ์ฃผ์ ํฉ๋๋ค.
์์ฑ์๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ์ฃผ์ ํ๋ค๋๊ฒ ๋ญ์ง? ์๊ฐํ๋ค๊ฐ
์ฐ์ฐ ํด๋์ค ํ์ ์ ํ๋์ => this.addOperation
๊ฐ์ฒด๋ฅผ ์ฃผ์ => new AddOperation()
์ด๋ ๊ฒ ํ์ฌ ์์ฑ์๋ฅผ ์์ฑํ์๋ค.
// ์์ฑ์ : ์์ฑ์๋ฅผ ํตํด ๊ฐ๊ฐ์ ์ฐ์ฐ ํด๋์ค ํ์
์ ํ๋์ ๊ฐ์ฒด๋ฅผ ์ฃผ์
ํฉ๋๋ค.
Calculator(){
this.addOperation = new AddOperation();
this.substractOperation = new SubstractOperation();
this.multiplyOperation = new MultiplyOperation();
this.divideOperation = new DivideOperation();
}
# 3์ฃผ์ฐจ ์์ step3
- calculate ๋ฉ์๋์์ ์ง์ ์ฐ์ฐ์ ํ์ง ์๊ณ ์ฃผ์ ๋ฐ์ ์ฐ์ฐ ํด๋์ค๋ค์ operate ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ์ฐ์ ์งํํฉ๋๋ค.
-> calculate() ๋ฉ์๋๋ก ๋ค์ด์จ ๋ฌธ์์ด(์ฐ์ฐ์)๊ฐ์ ๋ฐ๋ผ switch๋ฌธ์ผ๋ก ์ฐ์ฐ ์ข ๋ฅ๋ฅผ ๋๋๊ณ , ํผ์ฐ์ฐ์๊ฐ๋ค์ ์ฐ์ฐ ํด๋์ค๋ค์ operate๋ฉ์๋๋ก ๋๊ฒจ์ฃผ๋ฉด์ ๊ณ์ฐ๊ฐ์ return๋ฐ์๋ค.
case "+":
answer = addOperation.operate(firstNumber, secondNumber);
break;
# 3์ฃผ์ฐจ ์์ step4 (step4์์๋ ์ถ์ ํด๋์ค๊ฐ ์ถ๊ฐ๋์๋ค.)
- Calculator ํด๋์ค๋ 4๊ฐ์ ์ฐ์ฐ ํด๋์ค๋ค์ด ์์๋ฐ๊ณ ์๋ AbstractOperation ํด๋์ค๋ง์ ํฌํจํฉ๋๋ค.
- ์์ฑ์ ํน์ Setter๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ์ฐ์ ์ํํ ์ฐ์ฐ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ AbstractOperation ํด๋์ค ํ์ ์ ํ๋์ ์ฃผ์ ํฉ๋๋ค.(๋คํ์ฑ)
- calculate ๋ฉ์๋์์๋ ๋ ์ด์ ์ฐ์ฐ์ ํ์ ์ ๋ฐ์ ๊ตฌ๋ถํ ํ์ ์์ด ์ฃผ์ ๋ฐ์ ์ฐ์ฐ ํด๋์ค์ operate ๋ฉ์๋๋ฅผ ํตํด ๋ฐ๋ก ์ฐ์ฐ์ ์ํํฉ๋๋ค.
Calculrator ํด๋์ค์ ์์ฑ์ ๋ถ๋ถ๊ณผ main์์ ์ฐ์ฐ ํด๋์ค๋ฅผ ์ด๋ป๊ฒ ๋ค๋ค์ผ๋ ์ง ๊ณ ๋ฏผ์ ํ๋ค.
์์ฑ๊ณผ ๋ฉ์๋๋ ๋ค์ด์ด๊ทธ๋จ์ ๋ณด๋ฉด์ ์ ๊ทผ์ ์ด์(+๋ public), ํ์ , ๋ณ์๋ช ๋ฑ์ ๊ตฌ์ฑํ๋ฉด ๋๋ค.
Calculrator ํด๋์ค์ ์์ฑ์ AbstractOperation ํด๋์ค, ๋ฉ์๋๋ operation ๋ฉ์๋ ํ๋์ธ๋ฐ ๋๋ setter ์ญํ ์ ํ๋ ๋ฉ์๋๋ ์ถ๊ฐํ๋ค.
Calculator(AbstractOperation operation){
this.operation = operation;
}
์ถ์ํด๋์ค๋ง์ ๋ด์ผ๋ฉด ๋๋ฏ๋ก ์์ฑ์ ์ฝ๋๊ฐ ๊ฐ๋จํด์ก๋ค.!
๋ฉ์๋๋ ์ถ์ํด๋์ค operation์ operate ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋๋ก ํ์๋ค.
๊ทธ ํ Main์์๋ Setter๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ์ฐ์ ์ํํ ์ฐ์ฐ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ AbstractOperation ํด๋์ค ํ์ ์ ํ๋์ ์ฃผ์ ํ๋๋ก ํ์๋ค. (์๋์ ๊ฐ์ด)
cal.setOperation(new AddOperation());
์๊ฐ๋ณด๋ค ์์ ๋ฅผ ํธ๋ ๋ฐ ์ค๋๊ฑธ๋ ธ์ง๋ง ๋๋ฆ ๋ฟ๋ฏํ๋ค...
step4๊น์ง ๋๋ด๊ณ ๋ณด๋ ํจ์ฌ ๋ ๊น๋ํด์ง๊ณ ๊ตฌ์กฐ์ ์ธ ์ฝ๋๋ก ์ ๊ทธ๋ ์ด๋ ๋ ๊ฒ ๊ฐ์๋ค.
โ ์ถ์ํด๋์ค์ ์ฅ์
๊ตฌ์กฐํ๋ ์ค๊ณ ์ ๊ณต → ์์๋ฐ๋ ํด๋์ค๋ค์ด ์ผ์ ํ ๋ฉ์๋๋ ์์ฑ์ ๊ตฌํ, ์ฝ๋์ ์ผ๊ด์ฑ ์ ์ง ์ฌ์ฌ์ฉ์ฑ ํฅ์ → ํ์ํ ๊ธฐ๋ฅ๋ง ํ์ฅํ์ฌ ์ฌ์ฌ์ฉ ์ ์ฐํ ๋คํ์ฑ ๊ตฌํ → ์์๋ฐ์ ํด๋์ค์์ ํน์ ๋ฉ์๋๋ฅผ ๋ค์ํ๊ฒ ๊ตฌํํ ์ ์์ ์บก์ํ → ์ธ๋ถ ๊ตฌํ์ ์์๋ฐ์ ํด๋์ค์ ์์ |
What I will learn tomorrow ๐
- ์๊ณ ๋ฆฌ์ฆ ์ฝ๋์นดํ ๋ฐ์ผ๋ฆฌ๋ฃจํด
- ์๋ฐ 4์ฃผ์ฐจ ๊ฐ์
- ๊ฐ์ธ ๊ณผ์ ๋ ๋ฒจ2๊น์ง ๋์ !
'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JAVA ๊ณ์ฐ๊ธฐ ๊ณผ์ - level 1 ํธ๋ฌ๋ธ์ํ (0) | 2024.11.20 |
---|---|
10์ผ์ฐจ) (1) | 2024.11.15 |
8์ผ์ฐจ) ์๋ฐ ๋ฌธ๋ฒ ์ข ํฉ๋ฐ 3์ฃผ์ฐจ (0) | 2024.11.13 |
7์ผ์ฐจ) ์๋ฐ ๋ฌธ๋ฒ 2์ฃผ์ฐจ , 3์ฃผ์ฐจ (0) | 2024.11.12 |
6์ผ์ฐจ) ์๋ฐ ๋ฌธ๋ฒ ์์, Git 2์ฐจ ํน๊ฐ (1) | 2024.11.11 |
๋๊ธ