λ€νμ±μ΄λ νλ‘κ·Έλ¨ μΈμ΄ κ° μμλ€(μμ, λ³μ, μ, κ°μ²΄, λ©μλ λ±)μ΄ λ€μν μλ£ν(type)μ μνλ κ²μ΄ νκ°λλ μ±μ§μ κ°λ¦¬ν¨λ€.
- μν€νΌλμ μ€ -
μ¬κΈ°μ μ΄μ μλ₯Ό ν΄λΌμ΄μΈνΈλΌκ³ νμκ³ μλμ°¨λ₯Ό μΈν°νμ΄μ€λΌκ³ νμ!
μ΄μ μ(client)λ μλμ(interface)μ λ΄λΆκ΅¬μ‘°λ μ νμκ° μκ³ λμμ μν λ§ μλ©΄ λλ€. λ°λΌμ μ΄μ μλ μλμ°¨μ λ΄λΆκ΅¬μ‘°κ° λ³κ²½λλλΌλ μν₯μ λ°μ§ μκ³ , k3λ₯Ό νλ€κ° ν
μ¬λΌ λͺ¨λΈ3μΌλ‘ μλμ°¨ μμ²΄κ° λ³κ²½λλλΌλ μ΄λ ν μν₯μ λ°μ§ μλλ€.
μλ°μμμ λ€νμ±
μν : μΈν°νμ΄μ€
ꡬν: μΈν°νμ΄μ€λ₯Ό ꡬνν ν΄λμ€, ꡬν κ°μ²΄
public class MemberService {
private MemberRepository memberRepository = new MemoryMemberRepository();
}
public class MemberService {
//private MemberRepository memberRepository = new MemoryMemberRepository();
private MemberRepository memberRepository = new JdbcMemberRepository();
}
μμμ MemberRepositoryλΌλ μΈν°νμ΄μ€κ° μκ³ μ΄λ₯Ό ꡬ체ν νμ¬ MemoryMemberRepository, Jdbc MemberRepositroy ν΄λμ€κ° λ§λ€μ΄μ‘λ€. ν΄λΌμ΄μΈνΈμΈ MemberService ν΄λμ€μμλ κ²½μ°μ λ°λΌ μ€λ²λΌμ΄λ© λ λ©μλλ₯Ό μ€νν μ μλ€.
πμ 리νμλ©΄ λ€νμ±μ λ³Έμ§μ ν΄λΌμ΄μΈνΈλ₯Ό λ³κ²½νμ§ μκ³ , μλ²μ ꡬν κΈ°λ₯μ μ μ°νκ² λ³κ²½ν μ μλ κ²μ΄λ€βοΈ