π μ μκ°μ μ μ λ¬Έμ₯μ΄μμ
μΈνλ°μ¬μ΄νΈμμ μΈνλ°κ°μ¬λμ μλ° μ€νλ§ νλ μμν¬(renew ver.) - μ μ νλ‘κ·Έλλ¨Έλ₯Ό μν κ°μ’ κ°μμ λ΄μ©μ μμ±νμ΄μ. μ¬μ§κ³Ό κΈμ μ λΆ μ΄ κ°μμ λ΄μ©μ΄μμ.
μ΄ κ°μλ μ€νλ§4μ μ΄λ‘ μ μμ£Ό μ μ€λͺ
ν΄μ£Όλ κ°μμ
λλ€. μ΄ κ°μ λλΆμ μ€νλ§μ ν΅μ¬ κ°λ
DI
, IOC
λ₯Ό μ΄ν΄ν μ μκ² λμμ΅λλ€. κ°λ ₯μΆμ²ν©λλ€.
- λͺ¨λ : μ½λλ‘ κ΅¬μ±λμ΄ μλ λΌμ΄λΈλ¬λ¦¬
- μ 곡λ λΌμ΄λΈλ¬λ¦¬λ₯Ό νλ‘μ νΈμ μ½μ ν΄μ κΈ°λ₯ ꡬνμ ν΄λκ°λ©΄ λλ€.
import
λ λ μ΄μ νμμλ€.
IoC
)μ Bean
IOC
)λ μ€νλ§μμ κ°μ²΄λ₯Ό μμ±νκ³ μ‘°λ¦½νλ 컨ν
μ΄λλ‘, 컨ν
μ΄λλ₯Ό ν΅ν΄ μμ±λ κ°μ²΄λ₯Ό λΉ(Bean
)μ΄λΌκ³ λΆλ₯Έλ€.μ½λλ₯Ό μ½λ©νκ³ μ»΄νμΌνλ©΄ κ·Έκ²μ΄ νλμ ν΄λμ€λ‘λΆν° νμν κ°μ²΄κ° λμ¨λ€.
κ·Έ κ°μ²΄μλ μμ±κ³Ό κΈ°λ₯μ΄ λ€μ΄μλ€.
κ·Έλ¦¬κ³ κ·Έ κ°μ²΄κ° μλν λμ΄μ κ°μ²΄κ° μ 곡ν΄μ£Όλ λΌμ΄λΈλ¬λ¦¬ κΈ°λ₯λ€μ μΈλΆμμ μ¬μ©λ§ νλ©΄ κΈ°λ₯λ€μ΄ λ§λ€μ΄μ§ μ μλ€.
μ€νλ§λ κ°μ²΄λ₯Ό λ§λλλ° κ°μ²΄λ€μ΄ μλ μν©μμ νμν λλ§λ€ κ·Έ κ°μ²΄λ₯Ό, κ·Έ κ°μ²΄κ° κ°μ§κ³ μλ μμ±κ³Ό κΈ°λ₯μ μ¬μ©νλ κ²μ΄λ€.
μ€νλ§ μ»¨ν μ΄λλ
XML
λ¬Έμλ₯Ό ν΅ν΄ λ§λ€μ΄μ§ κ°μ²΄λ€μ λ΄κ³ μλ ν° κ·Έλ¦μ΄λ€.
μ€νλ§μμλ κ°μ²΄λ₯ΌBean
μ΄λΌκ³ νλ€. (μλ°λObject
)
μλ°λ¬Έμμμλ μ€νλ§μ»¨ν μ΄λμ μλ κ²μ νμν λλ§λ€ κΊΌλ΄μ μ¬μ©νλ©΄ λλ€.
μ€νλ§μμ κ°μ₯ μ€μν λΆλΆμ μ€νλ§ μ»¨ν μ΄λλΌκ³ λ³Ό μ μλ€.
μ€νλ§ μ»¨ν μ΄λμ λͺ¨λ κ°μ²΄κ° μκ³ , κ·Έ κ°μ²΄ μμλ λ΄κ° νμν λͺ¨λ κΈ°λ₯λ€μ΄ λ€μ΄μλ€. κ·Έ κΈ°λ₯λ€μ κ°λ°μλ (μλ°λ¬Έμμμλ) νμν λλ§λ€ κΊΌλ΄μ κΈ°λ₯ ꡬνμ νλ©΄ λλ€.
MainClass.java
public class MainClass {
public static void main(String[] args) {
My calculator calculator;
calculator = new MyCalculator(10, 5, new CalAdd());
calculator.result();
calculator = new MyCalculator(10, 5, new CalSub());
calculator.result();
calculator = new MyCalculator(10, 5, new CalMul());
calculator.result();
calculator = new MyCalculator(10, 5, new CalDiv());
calculator.result();
}
}
Calculator.java
public interface Calculator {
public int sum(int firstNum, int secondNum);
}
MyCalculator.java
πΈπ 컨ν
μ΄λ : λ λ€λ₯Έ κ°μ²΄κ° λ€μ΄μλ€.
public class MainClass {
public int fNum, sNum;
public Calculator calculator;
public MyCalculator(int fNum, int sNum, Calculator calculator) {
πΈπ Calculator calculator : μΈλΆμ κ°μ²΄λ₯Ό μμ±μμ λ£μ΄μ€¬λ€.πΈ
πΈπ λ΄κ° νμν κ°μ²΄λ₯Ό μΈλΆμλ€κ° λ§λ€μ΄λκ³
κ·Έ μΈλΆμμ MyCalculatorμ μ£Όμ
ν΄μ£Όλ κ²μ΄λ€.πΈ
this.fNum = fNum;
this.sNum = sNum;
this.calculator = calculator;
}
public void result() {
int value = calculator.sum(this.fNum, this.sNum);
πΈπ κ·Έλμ calculator.sum()μ΄ λ§μ
μ΄ λ μλ μκ³
λΊμ
, κ³±μ
, λλμ
μ΄ λ μλ μλ€.πΈ
System.out.println("result : " + value);
}
}
@getter
@setter
CalAdd.java
public class CalAdd implements Calculator {
@Override
public int sum(int firstNum, int secondNum) {
return firstNum + secondNum;
}
}