🤔 < Dependency Injection ? >

Object간의 관계를 정의하며, 관계에 의해 필요한 객체를 제공하는 것.

예를 들어, Service Class가 Repository Class를 사용할 때, Service Class는 Repository Class에 대한 의존성이 생긴다.

이런 의존성을 줄이는 방법 중 하나가 바로 "Dependency Injection" 이다.

 

🔥 < Dependency Injection Code in Java >

public class Service {
private final Repository repository;

public Service(Repository repository) {
this.repository = repository;
}

public void doSomething() {
 repository.performAction();
 }
}

위의 Code에서 Service Class는 Repository Class의 performAction() method를 사용한다. 이 method는 Repository Class에서 구현된다.

public class Repository{
  public void performAction() {
    //..
  }
}

이제 Service Object를 생성할 때, Repository 객체를 생성자에게 전달해주면 된다.

Repository repository = new Repository();
Service service = new Service(repository);
service.doSomething();

이렇게 하면, Service Class는 Repository Class의 기능을 사용할 수 있다. 이것이 바로 Dependency Injection의 개념이다.

 

🤔< Dependency Injection의 장점 ? > 

DI를 사용하면 코드의 재사용성,테스트 편의성,유연성이 향상된다. 특히 클래스 간의 의존성을 줄이므로 테스트와 리팩토링이 수월해진다.

 

 

Reference : Martin Fowler의 Dependency Injection

Wikipedia: Dependency Injection

 

Inversion of Control Containers and the Dependency Injection pattern

Explaining the Dependency Injection pattern, by contrasting it with Service Locator. The choice between them is less important than the principle of separating configuration from use.

martinfowler.com

 

Dependency injection - Wikipedia

From Wikipedia, the free encyclopedia Software programming technique Dependency injection is often used alongside specialized frameworks, known as 'containers', to facilitate program composition. In software engineering, dependency injection is a design pa

en.wikipedia.org

 

'Java' 카테고리의 다른 글

GUI(Graphical User Interface)  (0) 2023.04.04
Exception Handling  (0) 2023.04.04
프로그래밍 언어와 자바  (0) 2023.04.03
JAVA IllegalStateExecption  (0) 2023.04.03
java UncheckedException nullpointerexception  (0) 2023.04.03

+ Recent posts