기술 정리/Java

[Java]Dependency Injection : 의존성 주입

Treejin 2021. 3. 17. 23:13
반응형
// Programmer.java
class Programmer {
    private Coffee coffee;

    public Programmer() {
    	this.coffee = new Coffee();
    }
    
    public startProgramming() {
    	this.coffee.drink(); // 일단 마시고 시작하자
        ...
    }
}

위 코드에서는 Prgrammer클래스는 Coffee클래스의 의존성을 가진다.

=> Coffee클래스를 수정하면 Programmer클래스도 함께 수정해주어야 한다.

 

DI(Dependency Injection) : 의존성 주입

장점 

  • Unit Test가 용이하다.
  • 코드의 재활용성이 높다.
  • 객체 간의 의존성을 없앨 수 있다.
  • 객체 간의 결합도가 낮아진다.
// Programmer.java
class Programmer {
    private Coffee coffee;

    // 그 날 마실 커피를 고를 수 있게된 개발자
    public Programmer(Coffee coffee) {
    	this.coffee = coffee;
    }
    
    public startProgramming() {
    	this.coffee.drink();
        ...
    }
}

 

의존하는 클래스를 주입해줌으로써 객체 간의 결합도를 줄인다!!


출처 : velog.io/@wlsdud2194/what-is-di

반응형