Search
Duplicate

DI (Dependency injection)

Tags
DI
DI λž€?
말 κ·ΈλŒ€λ‘œ μ˜μ‘΄κ΄€κ³„λ₯Ό μ£Όμž…ν•˜λŠ” 것이닀. μ—¬κΈ°μ„œ μ˜μ‘΄κ΄€κ³„λž€ μ–΄λ–€ B 의 κΈ°λŠ₯이 μΆ”κ°€ λ˜λŠ” λ³€κ²½λ˜μ—ˆμ„ λ•Œ A 에 영ν–₯을 λ―ΈμΉ˜λŠ”κ²ƒμ„ λ§ν•œλ‹€. κ°•μ˜μ— λ‚˜μ˜¨ μž₯λ‚œκ° λ‘œλ΄‡μ„ 예둜 λ“€λ©΄, 배터리λ₯Ό B, λ‘œλ΄‡μ„ A 라고 ν•  수 μžˆλ‹€.
κ°•μ˜μ—μ„œλŠ” μ„Έκ°€μ§€μ˜ DI 방법을 μ„€λͺ…ν•΄μ£Όμ—ˆλ‹€.
μƒμ„±μžμ— μ˜μ‘΄κ΄€κ³„ μ£Όμž…
public class ElectronicCarToy { private Battery battery; public ElectronicCarToy() { battery = new NormalBattery(); } }
Java
볡사
Setter λ©”μ†Œλ“œμ— μ˜μ‘΄κ΄€κ³„ μ£Όμž…
public class ElectronicCarToy { private Battery battery; public ElectronicCarToy() { } public void setBattery(Battery battery) { this.battery = battery; } }
Java
볡사
μ™ΈλΆ€μ—μ„œ Setter λ©”μ†Œλ“œμ— μ£Όμž…ν•˜λŠ” μ—¬λŸ¬μ’…λ₯˜μ˜ 배터리λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€!
μƒμ„±μžμ™€ Setter λ©”μ†Œλ“œμ— μ˜μ‘΄κ΄€κ³„ μ£Όμž…
public class ElectronicCarToy { private Battery battery; public ElectronicCarToy() { this.battery = battery; } public void setBattery(Battery battery) { this.battery = battery; } }
Java
볡사
μ™ΈλΆ€μ—μ„œ Setter λ©”μ†Œλ“œμ— μ£Όμž…ν•œ λ°°ν„°λ¦¬λ‘œ μ΄ˆκΈ°ν™”!